Skip to main content

Full text of "Time Designs"

See other formats


(716) 834-1716 (716) 834-1716 


Call or write for a fre for a free catalog of products for the Timex Computer 


GOTE SGFIWAR 


PAE AER Oe Summer Westcoast TS Falr Special 


© for Centronics parallel printers 
* works in both 2068 and Spectrum mode 
* compatible with OS-64 & Spectrum emulators 
© EPROM socket and on/off switch on board 
* works with both Tasman and Acrecodriver software 
® plugs into cartridge dock—door completely 
closes with cable running back under computer 
© frees up rear edge connector allowing other 
peripherals to be used; less chance of a crash 
© print driver software for LPRINT, LLIST, and 
COPY included for 2068 and Spectrum modes 
FootePrint Interface w/software & cable $39.95 
FootePrint with OS-64 option included $60.00 
Bare board & instructions only 
Cable only for use with bare board . z 
Zero Insertion Force Socket option add $8.00 


SOFTWARE  TS2068 TS1000 ‘The Best of SUM 


_ Some sample articles include: Building Your Own 
Badgammon (Beckgammon)........ Spectrum Emulator, Repairing Your TS-1000, Word 


Processing Reviews for the 2068, UDGs on the TS- 
1000, Extensive Review of the Zebra Disk System, 


* Adding a Keyboard to the 2088, and Enhancing the 
$8. 2 Se A&JMicrodrive. 112 pages” : 


( ‘generator) $10.00 $10.00 
Hangman & TC TAC TOR, ih - $5.00 


‘The Best of SUM, Part I! 


Articles include Building an EPROM Program- 
FOOTE 'X%, SOFTWARE rer Susie kar toa 
P. (ey Box 14655 TK rocessing, at's Available for I, 
id sh 0 
Gainesville, FL 32604 pik oiaae pe. 
(90%) 338-1273 <9AM-SPM EDT) $7.00 
All prices are pre-paid and include shipping charges. 


Florida residents must add state sales tax. both for #15.00 


SEE THE 7INE DESIGNS AND FOOTE SOFTWARE BOOTHS 
AT THE NORTHWEST AND MID—-WEST TIMEX SINCLAIR SHOWS! 


| me 
pGilcia 


The SINCLAIR 
Computer Technology 


Magazine 


JULY/AUGUST. ’88 
(EMME EREEREREREEREEREEEE 


Time Designs Magazine Company 
29722 Hult Road 
Colton, Oregon 97017 
USA 
(803) 824-2658 
CompuServe iD# 71350,3230 


BACK ISSUES 


TIME DESTENS 
#E VOLUME TWO CLOSEOUT XK 
(lintted quantity in stock) 
$2.50 each, or 3 issues for only $6.00 
NOV/DEC *85 “OUT - 0.1) 
gans— oid OUlno.2) 
MAI 


RL 86 (Vol.2 No.3) 
MAY/JUN *86 (Vol.2 No. 
JUL/AUG "86 (Vo1.2 No.3) 
SEP/OCT "84 (Vol.2 No.6) 


¥X VOLUME THREE ISSUES xX 
(planty of thease In stock? 
$3.00 each, or 3 issues for only $8.00 
NOV/DEC "86 (Vol.3 No.1) 
JAN/FEB °S? (Vol.3 No.2) 
MAR/APR *87 (Vol.3 No.3) 
MAY/JUN *87 (Vol.3 No.4) 
JUL/AUG *87 (Vol.3 No.5) 
SEP/OCT *87 (Vol.3 No.6) 


VISA and 
Lia MASTERCARD 
ACCEPTED 


TIME DESIGNS MAGAZINE Co. 


29722 Hult Rd., Colton, OR 97017 


TIME DESIGNS MAGAZINE is published bi-monthly and 
is Copyright 1988 by the Time Designs Magazine Com- 
pany, Colton, Oregon 97017. All rights reserved. 
Reproduction of this magazine in whole or in part by any 
means without written permission is prohibited by law. 


SUBSCRIPTIONS: $16.95 a year for six Issues (U.S. 
funds only), mailed in the U.S. All other countries 
please write for information on surface and air mail rates, 


CUSTOMER SERVICE: Customer satisfaction is our 


goal. For subscription service problems, or any ques- 
tions and comments, please write or call. 


CHANGE OF ADDRESS: Please call or write our office if 
there is any change in your current mailing address to 
Prevent delay or even loss of service. ~ 


RENEWAL TIME? To determine your expiration date, 
simply read the date posted in the upper-right corner of 
your mailing label (magazine cover). For an example, 
“Now89" would indicate that the November/December 
1989 issue would be the last issue received. A form is 
provided elsewhere to renew your subscription. We also 
send one notice in case you forget. An early renewal is 
very much appreciated, and let us know we are doing an 
adequate job. 


NOTICE: Contributors to TIME DESIGNS are independent cf the TIME ! 
DESIGNS MAGAZINE CO, and opinions expressed Inthe contents ini | 
publication are not necessarily those of the management staff or its adver- 


ducts or companies provided in the magazine's cont 
that anyone attempting to modiy their computer or constructing an elec- 
tical project should seek help trom more knowledgeable individuals, 


f ORDER LINE 
(503) 824.2658 


Sinclair Survivalist 
HANDBOOK 


The Sinclair Survivalist Handbook is 
anew 70 page book that is filled 
with a n=) 
gram listings and articl 
by regular contributor's 
DESIGNS, for the  1S1000/Zx81, 
TS1500, TSZ068, and the Sinclair 6L. 
Examples include: “Adapting ext 
keyboards to your 181000: 
Line Delete Utility", "Strategic 
Football*, 1S2068 Space 
Bar", "OS-64 Utilities’, “Little 
League Scheduler", “Homemade ROM- 
Poker", "QL Super- 
*, "Using Quill With 
The GL Printer", ‘Inside the @L*, 
and much more! If you like TIME 
DESIGNS...you’}1 like this new 
book. Order your copy today! 


9.95 


READER SURVEY RESULTS 


Part One 


Over 280 TIME DESIGNS readers responded to our 
recent survey. Which is approximately 11 percent of 
our circulation. Some of the results were most in- 
teresting. The rest of the results will conclude next 


issue. We sincerely hope that this data will provide 
developers of hardware and software, and the Timex 
Sinclair dealers with a better understanding of our 


TS user community. 


Average Age of TDM Subscriber: 45 
Oldest Reported Age: 79 
Youngest Reported Age: 22 


Male/Female Ratio: 22 Male/1 Female 


States of Highest TS User Concentration: 


California 


New York 
Pennsylvannia 
Florida 
Texas 
Ohio 
Tllinois 
Virginia 
Michigan 
10 Most Common Occupations of TS Users: 
1. Retired 
2. Engineer 
3. Electronic Technician 
4. Supervisory/Management 
5. Student 
6. Instructor 
7. Consultant 
8. Military 
9. Sales 
10. Librarian 
Top 5 Hobbies of TS Users: 
1. Computers 
2. Electronics 
3. Photography 
4. Amateur Astronomy 
5. Gardening 
Computer Used The Most: 
1. TS2068 
2. TS1000 
3. QL 
4. IBM (or compatible) 
5. Commodore 64 


wnevninneseeeseseaevncrcevectreteicvasneneaecacieinaecnceeantene 2 


Other Computer Owned: 


1. TS1000 
2. TS2068 
3. 2X80 
4. 791500 
5. QL 


Most Popular Printer: 
1. 2040 Thermal Printer 
2. Gorilla Banana 
3. Epson RX-80 
4, Star NX-10 
5. Panasonic KXP-1080 


Most Popular Mass Storage Device Used: 
1. Cassette Tape 
2. Floppy Disk 
3. Microdrive Cartridges/Wafers 
4. EPROMs 
Most Popular TS2068 Disk Systems: 
1. Aerco FD-68 
2. Larken LKDOS 
3. Zebra FDD 
4. Oliger SAFE DOS 
5. Ramex MK 


5 Most Popular Monitor Devices: 
1. Color and B/W TV 

. Magnavox RGB 

Zenith 

Sanyo 

Commodore 


uo dbwWN 


‘vuseacereenvcceponeeagegaeezOECLGLOUEAOAUUUANGEUELUAAEOANEDOUTRROU OUGHTA 


If only TIME DESIGNS were printed in color! Then 
we could show you what the actual "Sir Clive" screen 
dump (above) really looks like. It was produced using 
a program called THE ARTIST, a TS2068 computer, an 
OKIMATE 20 Color Printer, and a special interface and 
printing utility software. 

To back-track just a bit...a couple of years 
ago, a puzzled TDM subscriber sent a letter to the 
editor, and posed the question whether the OKIMATE 20 
could be used with the 2068. Seems that the Okimate 
was configured to operate with "most popular brands" 
of personal computers, with optional "Plug 'n Print" 
interface/software packages...all of the brands, 
except the Timex (of course). 

Thanks to the research and development of John 
McMichael (who also adapted an inexpensive Commodore 
Plotter to the 2068), Timex users no lorger have to 
face discrimination. Using the Okimate 20, the 
Commodore "Plug 'N Print" package, and John's new 
“Commodore serial port emulation circuit board", high 
quality screen dumps can now be enjoyed in color. 
John also offers several print utility programs to 
help get the job done. 

Not only is the Okimate 20 a good color printer, 
but it is also suited for normal printer use 
(including NIQ mode) 

Information about the interface, and related 
2068 software can be obtained by sending a legal SASE 
to: John McMichael, 1710 Palmer Drive, Laramie, WY 
82070. 

The Okimate 20 must be purchased elsewhere, and 
is available everywhere. Try Sears, Target. Best, or 
Lyco Computer Inc. (1-800-233-8760). Typical discount 
price for printer and “Plug ‘n Print" package is 
right around $180. 


iti 


Another frequently requested device for the 
752068 is a MIDI Interface. MIDI stands for ‘Musical 
Instrument Digital Interface". Which is the means for 
hooking up electronic synthesizer keyboards, drum 
boxes (and much more) to your computer. Other 
computer brands like the ATARI ST and IBM PC are very 


strong in the area of MIDI support, both hardware 
and software. 


MIDI FOR THE 2068 


TIMEX SINCLATR NEWS 


MIDI is an invaluable tool for music students, 
composers, and live performers. And since MIDI is a 
word-wide industrial standard among electronic music 
instrument manufacturers and computer manufacturers, 
it wouldn't matter if you had an ATARI or a SINCLAIR, 
the hardware compatibility should be the same. 

Recently, Richard Hurd, ‘a TDM subscriber and 
occasional contributor wrote, "I have had success 
implementing MIDI on my TS2068. I also would be happy 
to hear from anyone interested in this." 

Richard has ed =RAM Electronic's MUSIC 
MACHINE, a MIDI interface for the Spectrum, from 
England (see review in the November '86 issue of ZX 
Computing), and also some accompanying MIDI software 
from a company called QUASAR. To operate the Spectrum 
hardware and software on the TS2068, Richard pur— 
chased John Mathewson's "Twister Board" for the rear 
expansion bus, and also used a Spectrum emulator. 

For further details, addresses, and even tips on 
ordering from Great Britain, send a SASE to: Richard 
Hurd, PO Box 153, Warrenton, OR 97146. 


WHERE GOEST FRED? ? 


Fred Nachbaur, formally of Nelson, British 
Columbia, Canada, and highly-respected authority on 
Sinclair computers, has taken several new turns. Most 
recently, he has accepted a position with a firm in 
Ottawa, and will be turning his TS1000/ZX81 product. 
line over to other Timex Sinclair dealers. 

Fred's own company, Silicon Mountain Computers, 
will be renamed "Silicon Mountain Electronics”, 
which, as the name implies, will pursue avenues of a 
more general electronic nature as well as computers. 

As a former TS software/hardware producer and 
supplier, Fred found that he lacked critical time and 
funding for development of various special projects. 
including one particular project...a new type of 
computer’. 

Fred recently told TIME DESIGNS that, "It should 
be clearly understood, however, that this project is 
by no means a certainty at this point. It's not be~ 
cause of the infamous "big IF", rather it depends on 
a whole lot of “little if's". I have carefully chosen 
a core of potential developers who have expressed an 
interest to investigate the potentials; IF ve all 
agree on the route to take; IF we all find the time 
to do our parts; IF the economics fall into place; IF 
the result of our brain-pooling results in a 
marketable product; IF no one comes up with a better 
mouse before we build a better trap...then there will 
be a new computer. But don't believe anything you 
hear, unless you hear it from us. If it does happen, 
it will not be, as rumour has it, a Timex "clone". 
The new machine will have some common features, such 
as elegance in simplicity, but a new machine in its 
own right.” 

Fred wants everyone to know that he will 
continue to be involved with the 2X81 family of fine 
computers; as a user, writer, and hacker, but not as 
a commercial supplier of TS software. 


SECRET STUFF 


Nigel Searle, a close associate of Sir Clive 
Sinclair for over sixteen years. announced to the 
General Assembly of the Boston Computer Society, on 


June 22, that Sir Clive was involved in developing 
some highly secretive computer equipment, and that he 
(Sir Clive) would personally announce detailed plans 
of the project and launch it world-wide at an 
upcoming BCS meeting. 

The only speculation and possible clues about 
the new computer equipment are coming out of the 
British press. Supposedly, Sir Clive is developing a 
new desktop computer based on transputer chip tech- 
nology, similar to the INMOS transputer, only Sir 
Clive felt that the INMOS was unsuitable for his 
project, and went out and developed his own 
transputer. The new desktop will reportedly out~ 
perform any PC technology currently available, 
processing data more than 10 times faster than an IEM 
AT. The new machine will be marketed under the 
CAMBRIDGE COMPUTER LTD label, just as the Z68 Laptop 
is. 


CLEVELAND 


Saturday, August 27 and Sunday, August 28, marks 
the date for the upcoming MIDWEST SINCLAIR COMPUTER 
CONFERENCE, which will be held at the Beck Center in 
Lakewood, Ohio (a suburb of Cleveland) . 

The Conference will feature TS exhibitors like 
Zebra Systems Inc., Sharp's Inc., Time Designs, and 
others; as well as seminars by Bill Ferrebee, James 
DuPuy, Basil Wentworth, Dave Hoshor, Thomas Simon, 
and others. 

For complete details, info on accomodations 
available in the area, pre-registration forms, and 
more, semi a SASE to: Andy Kosiorek, 2192 Glenbury 
Ave., Lakewood, OH 44107. For alternate information 
contact: James DuPuy, 6514 Bradley Ave (down), Parma, 
OH 44129, (216) 661-4105. 

If you live in Ohio, any of the surrounding 
states, the midwest proper, Ontario (Canada), most 
anywhere on the eastcoast and southern states (or 
anywhere!) ...come to the show and exchange ideas and 
information with fellow Timex Sinclair users. 


NEW RELEASES 


PODNUH is a clever name for a new 152068 
program, which has been thoroughly tested since its 
conception in 1985. This Machine Code program in- 
cludes a BASIC programmer (called "Supra-Basic") with 
a swift and reliable method of passing parameters to, 
and calling other Machine Code programs. These 
“other” programs may be customized routines, 
extensions of BASIC, utility programs, or complete 
applications programs. A PODNUH (version 1) package 
is available for $17.00 + $2.00 postage, which in- 
cludes selectable type fonts, a perpetual calendar, 
note pad. scientific caiculator, and more. "Add-On" 
options will continue to be added, such as WYNN DOE 
(a windowing utility) for $5.00. The author is 
also interested in sharing his program with pro- 
grammers or user groups, ami is offering a 
disassembled listing with documentation for $1.00, 
with the hope that PODNUH is adopted as a new 2068 
standard. Send check or money order to: Ron Ruegg, 
37529 Perkins Road, Prairieville, LA 70769. 

Many Timex fans have heard or read about the 
research that William J. Pederson of THE WIDJUP 00. 
has conducted on the TS2068 ROM/Operating Systen, 
from articles in several user group newsletters and 
magazines. Now there is a 160 page book by Mr. 
Pederson called "TOURING THE TS2068 ROM OPERATING 
SYSTEM". While this type of book isn't for everyone. 
it will be of interest to programmers and 2068 


hacker-types everywhere. It contains a complete 
annotated disassembly of the Home ROM and the XROM, 
along with several other tables of data. Mr. Pederson 
offers a theory which one may or might not accept 
about the development of the Timex ROM ard bank- 
switching routines...but it all makes for interesting 
reading. The book is priced at $20.00 + $3.00 postage 
and is available from: The WIDJUP Co., 1120 
Merrifield S.E., Grand Rapids, MI 49507. 

Arnold Ramaker, PO Box 263, Plymouth, WI 53073, 
(414) 893-8865, is busy designing an expansion box 
for the ZX81, TS1000, TS1500, 152068, and Sinclair QL 
computers. Any one of the computers can be placed 
inside the supplied case. The expansion box will 
feature multi-expansion slots and provisions for 
attaching a monitor, and several other peripherals. 
Mr. Ramaker would like to hear from folks who are 
interested in purchasing an expansion box like this, 
to get an idea on what price range and any additional 
features people would like to see incorporated. 

Matthew Zenkar, 142 Holcroft Rd., Rochester, NY 
14612, (716) 663-2048, is offering a utility program 
which will allow QL owners who use the Digital Pre- 
cision Desktop Publisher software package, to dump 
their files to Hewlett Packard-compatible laser 
printers, Write for information and price. 

The S.A.I.N. (Sinclair Artificial Intelligence 
Network) special interest group is now forming. It is 
for any Sinclair user interested in A.I., Micro- 
PROLOG, LISP, and other related topics. For further 
information, send a SASE to: Pete Fischer, PO Box 
2002, Tempe, AZ 85281, or call the TIMEWARP BBS, 
(617) 481-0555 (setting: 8/1/N. 300 baud) . 


LARKEH PRESENTS: a 
UP TO 256K RAM for your 2068 


> Expand your 2068 with up to 256K of battery backed up Raa 
- Larken Operating system lets you SAVE to memory, just like 
cassette or disk. (Floppy disk not required ) 

- All Cassette commands supported. Very Fast and Reliable . 

- Can be used with ALL existing 2068 or Spectrum software. 

- Uses the new 32K static ram chips, 62256LP or 43254LP 

~ System consists of Larken Cartridge and Rear Meaory Board. 

#% PRICE ~ MEMORY SYSTEM with 64K Ram . = $129.00 
~ MEMORY SYSTEM with 0 K - + $5.00 


LARKEN 2068 FLOPPY DISK SYSTEM 
~ The wost advanced Dos available for the 208/Spectrum . LKdos 
uses ALL Commands such as CAT MERGE ERASE LOAD SAVE PRINT OPEN 
etc. Also can support RAMDISK up to 254K and Sequential / Random 
Access Files (with additional software). “The Larken Disk 
Interface can handle up to 4 floppys for up to 3.2 MegaBytes of 
storage. Also NMI Snapshot Save Button and KEMPSTON Joystick 
port on interface Also 10 Extended Basic commands for Windows 
and Graphics. 
AERCO RAMEX or OLIGER Disk users can add Lkdos for aore 
commands, Raadisk and access to all Lkdos software 
## PRICE - Larken Floppy Disk System ..sssreceree $119.95, 
- Floppy Disk IF with 0 K Memory board 
- Larken Disk Editor . 
~ Sequential/Random access files + 
- Xnodes to Disk Modem package . $ 
= X-B1 Floppy Interface (15 left)... $ 
~ LKDOS for Aerco,Rasex or Oliger Disk IF $ 
{All prices are US , Add 6$ Shipping ) 


LARKEN ELECTRONICS RR#2 NAVAN ONTARIO CANADA K4B-1H? 
(613) -B35-2680 


"2X... PHONE HOME!" 


)* — A T$1000/TS1500/2%81 Program 
To Help Remember Telephone Numbers 


by David Hartman 


The following program develops words based on 


oo Those users with a 16K TS1000/ZxX81, should end 
PA Sea en te teeta pple ee up with "13505" printed on the screen, after entering 
cadarvthen tnéctoce weabeeen Temembered <8: 8) word» the following line: PRINT (PEEK 16388 + 256 * PEEK 16 
pci) Sri tioesia ad : 389) - (PEEK 16396 + 256 * PEEK 16397) 

This program will run on a TS1000 or 2X81 with a If “"ia808" ia your -anawer, then you have aot 
16K RAM pack installed. or on a TS1500. This program likely typed in the program listing correctly 
should also work with a 1TS2068, with only minimal . 


changes to the program. 


Line Uses: 


1-24: Opening screen 
25-40: Instructions and input 


VARIABLES? 


50-70: Check for ‘1’ and "07 n$! Holds entered phone number 

80: See 8000 w$: Holds all possible letter combinations 

110-200! Assemble words by slicing 1$: Holds telephone dial information 

202-255! Print results on screen ft Flag indicates if a ‘1’ or a ‘0’ is in the number 


260-310! Copy and continue (Important to know because 1 and 0 do not have assigned letters) 
300-575: Assemble words if a ‘1’ or 'O" are involved x? Increment control 
600-640: Re-establish phone number for printing ds Ky Ly mt For/Next control 
5010-5040! Initialize, set up arrays 

8000-8040: Not useful message 


1 REM WORDS FROM TELEPHONE NUMBERS 
2 REM 105/1.1 3/20/88 
7 SLOW 

8 CLS 

10 PRINT AT 6,0;"WORDS FROM TELEPHONE NUMBERS" AT 14,0 
BER SPELLS" 

15 PRINT AT 21,03"(C) 1988 DAVID HARTMAN" 

20 GosuB 5000 

22 FOR J=1 TO 60 

24 NEXT J 

25 CLS 

27 PRINT TAB €3"TELEPHONE WORDS", ,, 

30 PRINT "ENTER THE LAST FOUR DIGITS OF YOUR TELEPHONE NUMBER TO SEE", “WHAT 
THEY SPELL. THEN, USE THAT WORD WHEN SOMEBODY WANTS YOUR", "NUMBER. THEY PROBABLY 
WILL 'BE","ABLE TO REMEMBER iT WITHOUT",*WRITING IT DOWN." 

40 INPUT NS 

43. IF LEN N#<4 THEN GOTO 90 

45 LET F=0 

50 FOR J=i TO 4 

65 IF NS(J)="1" OR NS(J)="0" THEN LET F=F+i 


“LETS SEE WHAT YOUR NUM 


67 IF NS(J)="1" THEN LET N&(J)="Q" 205 GOSUB 400 7 
68 IF NS(J)="0" THEN LET N&(J)="Z" 210 PRINT "HERE ARE THE CHOICES FOR "3N$ 
70 NEXT J 212 PRINT F 
80 IF F>1 THEN GOTO 8000 215 LET J=1 : 
85 GOTO 110 220 FOR K=J To J+5 
90 PRINT AT 15,0;"YOU DID NOT ENTER A 4 DIGIT*, 225 IF K=8Z THEN GOTO 240 

“NUMBER. PLEASE TRY AGAIN. * 230 PRINT WS(KI5". "5 

93 FOR J=1 TO 60 240 NEXT K 
97 NEXT J 245 PRINT 

100 GOTO 25 230 LET J=K 

110 LET X=1 255 GOTO 220 

115 FAST 260 PRINT AT 21,05"(C) COPY?" 
120 FOR J=i To 3 


270 INPUT AS 


130 FOR K=1 To 3 280 IF AS<>"C* THEN GOTO 25 


140 FOR L=i To 3 


290 PRINT AT 21,03" . 
150 FOR M=1 TO 3 300 copy 
153 IF F THEN GOTO 500 310 RUN 
167 LET WS(X)=LS(VAL NS(1),J)4+LS(VAL NS(2), Soe) Fest Tale BHR Cae Gucuset Bes boa ae 
ike Sad. Nets YL L8 (VAL: NCO} SH) (27,5) #L8(VAL_NS(3)5LI+LS (VAL NS(4) 9M) 
es hh S15 IF NSC1)="Q* THEN LET WS(X)="1°+LS(VAL NS 
180 NEXT L (2) sKI+LS(VAL NSCS) sLI4LS (VAL NEC4 14M) 
190 NEXT K 520 IF NS(2)="Z" THEN LET WS(X)=LS(VAL NS(1), 
200 NEXT J DFMO FLS(VAL NS(3),LI4LS (VAL NSC4).M) 
202 CLS 
203 SLOW 5 


530 IF NS(2)="Q" THEN LET WSQO=LS(VAL NS(1), 5020 LET 
DVM LSCVAL NSCS) LIFLSCVAL NS(H 9D 50zz LET Boe 
540 IF N$(3)="Z* THEN LET WS(X)=L$(VAL NB(1), 5024 LET “DEF 
SJVFLS (VAL NB(Z) + KETO" +L ECVAL NS(4) 4M) a02e EY SHE 
550 IF N$(3)="Q" THEN LET W$(X)=LS(VAL NS(1)5 uae tel pet 
4S (VAL NS(2),K)4" LT HLSCVAL NSA) MD 5032 LET * PRS" 
560 IF NS(4)="Z* THEN LET WS(X)=LS(VAL NS(1), 5034 LET L$(@)="TUV" 
D4LS (VAL NS(2),KO4LS(VAL NS(3),L) +40" 5036 LET L$(9)="uxy" 
570 IF NS(4)="Q" THEN LET WS(X)=LS(VAL NS(1), 5038 LET L$(10)= 


D)4LS(VAL NS(Z),KO+LS(VAL NS(3)5L) #11" acoo Gs 

575 GOTO 169 8005 GOSUB 600 

580 STOP 8010 PRINT AT 14,03"YOUR NUMBER, "iN$5"» HAS 
600 FOR J=1 TO 4 TOO MANY ONES OR ZEROS TO BE USEFUL 


610 IF NS(J)="Q" THEN LET NS(J)="1" IN CREATING A WORD....SORRY ABOUT THAT," 
620 IF N$(J)5"Z" THEN LET NS(J)="0 8020 FOR J=1 TO 100 


630 NEXT J 


640 RETURN — wero 2s 

5010 DIM L$(10,3) 8999 STOP 

5015 DIM W#(81,4) 9000 SAVE “TELEWORDS* 
9010 RUN 


STUD POKER 


A Casino-Style Game Listing For The TS?068 


by William C. Andrews 


This is a TS 2068 program ta play FIVE CARD STUD POKER 
against the computer, the dealer. After an ante you bet on each 
card dealt. The dealer matches your bet. You may go out at any 
time by betting "9". You must pay to see the hole card if 
needed. The dealer is also the banker and will keep track of the 
game’s progress. 


When typing the program please note that letters in 
quotes in lines 6910, 6930, 6950, 6149, 7020, 9991 and the last 
letter in lines 8001 to 852 are in GRAPHIC mode for UDG’s. Line 
9992 clears color from the screen for working on the program. 
Line 6999 selects cards randomly and line 6119 pre 
duplication. Cards are shuffled for each game. 


255 GO TO 300 

268 NEXT Ki GO TO 400 

262 LET P(3)8V: LET X#(3)=AS(F, 

nts 4)1 RETURN 
265 LET P(4)—Vi LET X8(4)=A8(F, 
4): RETURN 

For a tape of this program send $ 19.99 pp to me at 30 268 LET P(S)=Vi LET X®(S) <AS(F, 

eak Knoll Drive, San Anselmo, CA. 94968. 4). RETURN 

3@0 FOR 1=18 TO 24 STEP 3 

310 LET AwT 


19 LET ST=198 

15 IF sT<90 THEN GO TO 4670 

2@ BORDER 4: PAPER 4: CLS: LE 
T T=@: GO SUB 8gaa 

25 PAPER 71 FOR Ne? TO 14: PRI 
NT AT N,ee" 

“a NEXT N 

30 LET PRe@: LET DR=@: LET PL 
@: LET DL=@: DIM X#(4)s DIM Y(6 
> 

3S RANDOMIZE 

4@ PRINT PAPER 43" ") PAP 
ER 2) INK 9; ERIGHT 1;AT 0,55" F 
IVE CARD STUD POKER "3 BRIGHT 3 
PAPER 4)" 7 

45 INK 1 


SO LET KS =" ee 


SS LET L$= 


6@ PRINT PAPER 4;K8 
65 PRINT "£"; INK @}" YOUR HA 
ND DEALERS HAND "s INK 15" 
7@ PRINT AT 3,@)L8;AT 3,0)"0"5 
aT 3,315"5" 


75 FOR I= 10 6 
Q@ PRINT "A";TAB Sis" M"STAB S 
1p TAB Siz" 8 


@5 NEXT IT 

9@ FOR I=2 TO 14 

95 PRINT AT 1,15} PAPER 7; "9" 
1@@ NEXT I 


195 PRINT PAPER 4;L$ 
110 FOR N=1é TO 21: PRINT AT N, 
@; PAPER 43" 
“y NEXT N 

115 GO SUB 4950 

120 INK @ 

125 LET Peo: LET D=o 

130 PRINT FLASH 13 PAPER 6;AT 
17,13)" ANTE ": GO SUB 4779 

135 PAUSE 6 

140 LET H=O: LET A=2: LET Bear 
GO SUB 6900 

145 LET P(i)=V: LET X#(1) =AS(F, 
4) 

15@ LET A=: GO SUB 6998 

155 LET P(2)eVe LET X$(2)RAS(F, 
4) 

16@ LET H=i: LET A=16: GO SUB 6 
oe 

165 LET H=@: LET A=24: GO SUB 6 
220 

170 LET Aw2: LET D(2)=V1 LET ve 
(2)=A6 (F, 4) 

175 GO SUB 4900 

162 GO SUB 4750 

200 LET B=8 

210 FOR K=2 TO @ STEP 3 

228 LET AsK 

230 GO SUB 4909 

240 GO SUB 260+K 

250 GO SUB 4090+ (Ks19) 

281 GO SUB 4289 

252 IF K>? THEN GO TO Isa 


6 


320 GO SUB 4000 

330 GO SUB 348+((1/3)-5) 

34@ GO SUB 4300+(1+2) 

345 IF 1=24 THEN IF DR>=i AND 
DR>=FR AND DL>PL THEN GO TO Sii 
8 

350 GO SUB 4750 

355 GO TO 2460 

358 NEXT I; 

36@ GO TO 490° 

361 LET D(S)=¥i LET YS(S)=AS(F, 
4)1 RETURN 

B62 LET D4) "V1 LET Y8(4)=AS(F, 
4)4_ RETURN 

363 LET DiS) avi LET Y8(5) =AS(F, 
4)1 RETURN 

400 LET Be4: LET A=i8 

410 GO SUB 6999 

420 LET D(1)=Vi LET Y®(1)©AS(F, 


430 GO SUB 4400 

435 GO SUB 4630 

449 GO TO Seeo 

1988 DIM A(S)s FOR N=1 TO S 
1918 LET A(N) =F (N) 

1020 NEXT Ne GO SUB 1150: RETURN 


1030 DIM A(5): FOR N=t TO 5S 
1@35 LET ACN) =D(N) 
114@ NEXT Ni GO SUB 1150: RETURN 


1150 LET STR=@: FOR Nei TO 4 
1168 FOR M=1 TO S-N 

1170 LET C=acM) 

1180 LET Deacm+1) 


1198 IF CémD THEN GO TO 1220 

1200 LET A(M) =D 

1219 LET A(M+1) aC 

1220 NEXT M 

1230 NEXT N 

1248 FOR N=2 TO 5 

1250 IF A(N)SA(N-1)41 THEN GO T 

0 1270 

1260 return 

1270 NEXT N 

1280 LET STR=i: RETURN 

3999 STOP 

4@0O IF P(2)=P(1) THEN LET PLeP 

(2) GO TO 4150 

401@ RETURN 

4@20 IF F(S)=P (1) OR P(3)=P(2) T 

HEN LET PL=P(3)1 GO TO 4150 

4021 RETURN 

4Q3@ IF PRei THEN IF P(3)=P(1) 

AND P(3)=P(2) THEN LET PL=P(3)1 

GO TO 4199 

4042 RETURN 

AQS@ IF PR=i THEN IF P(4)=P(1) 

AND P(4)=P(2) OR P(4)=P(1) AND P 

(4) =P (3) OR P(4)=P (2) AND P(4)=P 

(3) THEN LET PL=P(4)1 GO TO 419 

ry 

4060 IF P(4)=P(1) OR P(4)=P(2) O 

ROP (4)=P(3) THEN LET PL=P(4)1 G 

0 TO 4150 

407@ RETURN 

4@8G IF PRe3 THEN IF P(5)=P(1) 

AND P(S)<>P(4) OR P(S)=P(2) AND 

PCS) <>P (4) OR P(S)=P(3) AND P(S) 

<>P(4) OR P(5)=P(4) AND P(5)<>PC 

3) THEN LET PL=P(S) GO TO 4200 

4090 IF PRe3 THEN IF P(S)=P(2) 

OR P(S) =P (3) OR PiS)=P(4) THEN 

LET PL=P(S)1 GO TO 4200 

4100 IF FR®2 THEN IF P(5)=P(1) 

AND P(5)=P(2) OR P(S)=P(1) AND P 

(S)9P(3) OR P(S)=P (A> AND PCS) 

=P (4) OR P(5)=P(2) AND P. 

(5) =P (3) OR P(S)=P (2) AND P(S) 

=P (4) OR P(S)=P(3) AND P(S) =P (4) 

THEN LET PL=P(S): GO TO ai9a 

411@ IF PR=t THEN IF P(5)=P(1) 

AND P(5)=P(2) OR P(5)=P(i) AND 

F(S)=P(3) OR P(S)=P(1) AND P(S) 

=P(4) OR P(5)=P(2) AND P(S)= 

P(3) OR P(S) =P (2) AND P(5)=P( 

4) OR P(S)=P(3) AND P(S) =P¢ 

4) THEN LET PL=F(S): GO TO 4199 

4126 IF P(5)=P(1) OR P(5)=P(2) 

OR P(S)=P (3) OR P(S)=P(4) THE 

N LET FL=P(S): GO 70 4150 

414@ RETURN 

A15@ LET PRePR+1 

4169 IF PR=i THEN PRINT INK 25 

AT 16,2)"ONE PAIR"; INK 1,AT 17, 

2p MeN) BEEP 43,19 

4170 IF PR=2 THEN PRINT INK 23 
AT 16,Z)"TWO": BEEP .3,1@s 

BEEF .3,10 

4180 RETURN 

4190 LET PR=PR+1 

4200 LET PR=PR+1L 


4219 IF PReS THEN GO TO 426% 

4220 IF PR#3 THEN PRINT INK 25 
AT 14,45" THREE “3AT 17,1; "OF 

A KIND"5 INK 1pAT 16, 15 "atetatnatatene 
#'r BEEP .2,1@: BEEP .2,10: BEEP 
+2,19 

4230 IF PR=3 THEN RETURN 

4240 IF PR=4 THEN PRINT INK 2} 
AT 16,15" FOUR  "JAT 17,15 "OF 
A KIND"5 INK 15AT 18, 15 "atetetemaretent 
evn BEEP .2,10: BEEP .2,1@: BEEP 
+2,191 BEEP 22,10 

4250 RETURN 

4260 IF PR=S THEN PRINT INK 2} 
AT 16,0;"FULL HOUSE"; INK 1;AT 1 
7,8) "PMANAMOAO, BEEP 12,101 BE 
EP .2,1@: BEEP .2,1@: BEEP .2, 10 
1 BEEP .2,1@: BEEP .2,10: 

BEEP .2,10: BEEF .2,10: BEEP 
12,18 

4270 RETURN 

4280 IF X#(1)=X8(2) THEN IF x8( 


2)=X8(3) THEN IF X$(3)=x8(4) TH 
EN IF X®(4)=X8(5) THEN LET PRS 
6 

4290 IF PRe& THEN PRINT INK 25 
AT 16,15" FLUSH "y INK 1;AT 17 
pLp MeN: FOR Nei TO 10: B 
EEP 2,191 NEXT N 

4291 GO SUB 198%: IF STR=1 THEN 
LET PR=7 

4292 IF PR=7 THEN PRINT INK 25 
AT 16,1; "STRAIGHT "y INK 1;AT 17 
slp Mater) FOR Nei TO 10: B 
EEP 2,191 NEXT N 

4300 RETURN 

4320 IF D(3)=D(2) THEN LET DL 
=D(2): GO TO 4499 

4321 RETURN 

4323 IF DR=i THEN IF D(4)=D(2) 
AND D(4)=D(3) THEN LET DLeD(4)1 
GO TO 4546 

4324 IF _D(4)=D(2) OR D(4)=D(3) T 
HEN LET DL=D(4)1 GO TO 4490 
4325 RETURN 

4326 IF DR®S THEN IF D(S)=D(2 

Y AND D<S)=D(3) AND D(5)=D(4) TH 
EN LET DL=D(5)1 GO TO 4540 
4370 IF DR=t THEN IF D(5)=D 

(2) AND D(S)=D(3) OR D(S)=D(2> A 
ND D(5)=D(4) OR D(5)=D(3) AND DC 
5)=D(4) THEN LET DL=D(5)1 GO TO 
4549 

4380 IF D(5)=D(2) OR D(S)= 

D(3) OR D(S9=D(4) THEN LET 
DL=D(5): GO TO 4498 

4390 RETURN 


4400 IF DR=3 THEN IF D(i)=D(2 

) AND D(1)<>D(5) OR Dit) =D¢3) AN 

D D¢i)<>D(S) OR Déii)=D(4) AND 

D(1)<>D¢5) OR D(1)=D(5) AND DCI) 

<2D(4) THEN LET DL=D(1)1 GO TO 

4540 

4410 IF DRs2 THEN IF D(1)=D(2) 

OR D(4)=D(2) OR D(i)=D(3) THEN 
LET DL=D(1)1.G0 TO 4530 

4420 IF DR=i THEN IF D¢1)=D(2> 

AND D(2)=D(3) OR D(i)=D(2) AND 
D(2)=D(4) OR D(i)=D(2) AND 

D(2)=D(S) OR D(i)sD(3) AND D 

(3)=D(4) OR D(L)=D(3) AND DCS) 

=D(5) OR D(1)=D(4) AND D(4)= 

D(S) THEN LET DL=D(i)2 GO TO 45, 

40 

4430 IF DR=1 THEN IF D(1)=D(2) 

OR D<i)=D(3) OR D(1)=D(4) OR Dit 

)=D(S) THEN LET DL=D(1)1 GO TO 

449 

4440 IF D(1)=D(2) OR D(1)=D(3) 0 

R_D(1)=D(4) OR Dit)=D(S) THEN L 

ET DL|D(1)1 GO TO 4440 

4450 RETURN 

4460 LET DR=DR+i 

4489 GO TO 4500 

4490 LET DR=DR+1 

4500 IF DR=1 THEN PRINT INK 25 

AT 16,21;"ONE PAIR"; INK 1;AT 17 

p2lp "NAA, BEEP 13,2 

4519 IF DR=2 THEN PRINT INK 2) 

AT 16,21;"TWO": BEEP .3,21 BEEP 


“uda™ vei 
BASIC full. 


ereen window facility + 
BASIC Classy Front End new fonts utility ( 


matical plot of the moon's surface (appeared in TDM J/A '85) 
‘astronomic coordi 
easy designer grarhi: 

ica 2 allows multiple fonts and much so! 


es to altitude/azimuth (in TDM N/D '85) 
for redesign of U.D.G.s (in TDM J/A '88) 
(in TDM N/D +66) 


appeared in TDM M/A '87) 


store 


Complete Classy Froot End foots W.C. version (as in TDM J/A-K/D '87) 


addition if you wich: 


Mindovs & Portholes complete-—oan work with “ofe/mo” (New this issue) 


BINGHAM’S BEST. 


"of udg program 


85 ppd 
112,89 ppd 


found in BINGHAM’ s BEST 


Complete M.C. version of Classy Front End (use alone or with “wkp") 


‘The comple’ 
‘JAZZOFIRE 


Mail all orders to: 
PAUL BINGHAM 
P.O. BOX 2034 
MESA, AZ 85214 
(please US funds only) 


RBI GRSSEREDIE 


‘version of Windows & Portholes { 


4520 RETURN 
4530 LET DR=DR+1 

4540 LET DR=DR+1 

4550 LET DR=DR+1 

4560 IF DR=5 THEN GO TO 4618 
4570 IF DR=3 THEN PRINT INK 23 
AT 16,215" THREE "AT 17,215 "0 
FA KIND"y INK 1gAT 18,215 "ewww 
weet"; BEEP 2,2: BEEP .2,2: BE 
EP .2,2 

4500 IF DRe3 THEN RETURN 

4590 IF DR=4 THEN PRINT INK 25 
AT 16,215" FOUR  "sAT 17,215"0 
FA KIND": INK 1pAT 18,21) "eee 
wt") BEEP «2,21 BEEP .2,21 BEE 
P .2,21 BEEP .2,2 

4600 RETURN 

4610 IF DR=S THEN PRINT INK 25 
AT 16,21) "FULL HOUSE"sAT 17,215" 
eee) FOR N= TO 81 BEEP 
12,21 NEXT N 

4620 RETURN 


4630 IF Y$(1)=Y$(2) THEN IF Ys¢ 
2)=Y(3) THEN IF Y®(3)=Y$(4) TH 
EN IF Y8(4)=Y®(5) THEN LET DR= 
6 
4640 IF DR=6 THEN PRINT INK 2} 
AT 16,215" FLUSH “SAT 17,215" 
PMNs BEEP .2,21 BEEP .2, 
21 BEEP .2,2: BEEP .2,2: B 
EEP .2,21 BEEP .2,21 BEEP .2,2 
4659 GO SUB 10301 IF STR=1 THEN 
LET DR=7 
4655 IF DR*7 THEN PRINT INK 2 
AT 16,213" STRAIGHT "SAT 17,215" 
eeeets FOR N=1 TO 8: BEEP 
+2,21 NEXT N 
4669 RETURN 
4670 BORDER 6: PAPER 61 CLS 
4680 PRINT INK @;AT 9,10; "YOU'R 
E BROKE";AT 11,1;"SEE YOUR BANKE 
R AND COME BACK.” 
4690 PAUSE 
4708 STOP 
471B-PRINT AT 19,23 "YOU NOW 
"SAT 20,0; "HAVE-8 "3ST 
472@ IF ST<1@ THEN PRINT AT 20, 
a" 
4730 IF ST<100 THEN PRINT AT 26 
car 
4740 IF ST<=@ THEN GO TO 467@ 
47S@ PRINT FLASH 13 PAPER 6; AT 
16,135" BET " 
4760 PRINT AT 17,153" * 
477 PRINT AT 19,2; "YOU NOW "y 
AT 20,0; "HAVE-® "3ST: IF ST<190 
THEN PRINT AT 20,93" " 
4788 INPUT W 
4790 PRINT AT 16,133" . 
4800 LET W=INT W 
4810 IF W>1@ THEN PRINT AT 17,1 
3;"SORRY,"ZAT 18,13; "LIMIT"ZAT 1 
Fyligh “PAT 19,13;"% 19" 
4820 IF W>1@ THEN PAUSE 15@ 
4830 IF W>18 THEN PRINT AT 17,1 
3h" "yAT 18,135" "aT 
19,415" 
4849 IF W>1@ THEN GO TO 4740 
4850 IF W<i THEN PRINT AT 16,11 
3 PAPER Sy FLASH 13" You 5A 
T 17,113" CHOSE "sAT 18,11 
TOGO "sAT 19,115" QUT! B 
EEP 1,-15: PAUSE 159: GO TO 5120 
4869 LET ST=ST-W 
4978 LET T=T+24W 
4880 PRINT AT 17,13," "SAT 
18,12," "AT 19,1143" 

"SAT 17,135 "8 "50 
4899 PRINT AT 20,7;ST 


4900 IF ST<1@ THEN PRINT AT 20, 
a" 

4910 IF ST<196 THEN PRINT AT 28 
an 

4920 IF T<1@0 THEN PRINT AT 19, 
11; "TOTAL=$" 37 

4930 IF T>=10@ THEN PRINT AT 19 
yils "TOTALS" 3T 


4940 RETURN 

4950 FOR I=16 TO 20 

4960 PRINT AT 1,10; PAPER 45 
AT 1,205 "0" 

4970 NEXT I 

4980 PRINT AT 15,10; PAPER 4;"" 


eae 

4985 FOR N=i6 TO 19: PRINT AT N, 
11, PAPER 75 INK 13" at 
NEXT N 


4990 PRINT AT 20,10; PAPER 43" 

3 PAPER @; INK 95" THE POT "; PA 

PER 4;"1" 

4995 RETURN 

5@10 IF PRDR THEN GO TO S@6o 

5@15 IF DR>PR THEN GO TO S110 

5@20 IF PR=@ AND DR=O THEN GO T 

O S130 

5@30_IF PR=DR AND PL>DL THEN GO 
TO 5048 

5@49 IF PR=DR AND DL>PL THEN GO 
TO 5116 

S850 GO TO 5130 

5960 PAUSE 89 

5Q70 PRINT FLASH 13 INK 1,AT 16 
sis" WINNER “3 FLASH @} INK 035A 

T 17413" “ZAT 17,3;"8 "p 

Tr FOR N=1 TO @: BEEP .1,191 NEX 

™N 

5@80 LET ST=ST+T 

5090 PRINT AT 20,7;ST 

5190 GO TO 5130 

Si1@ PAUSE ao 

5120 PRYNT FLASH 15 INK 1;AT 16 

3213" WINNER "y FLASH 3 INK @| 

AT 17,215" “PAT 17, 23,"8 
"sTs FOR N=1 TO @1 BEEP .1,-19 
NEXT N 

5130 PRINT AT 16,11; PAPER 65 FL 


ASH 1)" PLAY = "jAT 17,115" ANO 
THER "SAT 18,11 HAND? "SAT 1 
Fits" (Y/N) 


5140 PAUSE 
SiSO IF INKEY$="N" THEN GO TO 5 
140 

S155 GO TO 11 

5140 BORDER 3: PAPER 31 INK 71 C 
Ls 

5170 PRINT AT 1@,1,"HOPE YOU HAD 
FUN---COME AGAIN. 


5180 PAUSE o 

5190 STOP 

6980 FOR C=1 TO 2 

6010 PRINT AT B,A;"FJUIG" 

6220 FOR N=B+1 TO B+S, 

6038 PRINT AT N,AS"K KM 

6048 NEXT N 

6050 PRINT AT B+4,A; "HJJJI" 

4040 NEXT C 

6065 BEEF 01,10 

6070 IF H=i THEN GO 70 6130 

4080 GO SUB 7008 

4990 PRINT AT B+L,A+1s INK X;A8( 

F,4) AT B+3, A414 INK ;A8(F,2 TO 
S)pAT B+S,A+3; INK XsAS(F, 4) 

6120 LET V=9: GO SUB 7049 

6110 LET AS(F,L)="1" 

6120 RETURN 

6130 FOR N=B+1 TO B+S 

6148 PRINT AT N,As"K"; INK 15"EE 

E"y INK 95"K" 

6150 NEXT Ni RETURN 

6620 LET F=INT (RND¥S2) +1 

6619 IF AS(F,4)<>"B" THEN GO TO 
1620 

6628 LET x= 

6630 IF AS(F,1)="2" OR AS(F,1)=” 

4" THEN LET X=2 

6640 RETURN 

700% LET F=INT (RNDXS2) +1 

7010 IF AS(F,1)<>"@" THEN GO TO 
7080 

7020 LET X=@1 IF AS(F,4)= 

AS(F,4)="D" THEN LET X=2 

7020 RETURN 

7040 IF AS(F,2 TO 3)=" A" THEN 

LET Veta: RETURN 


8 


oR 


7050 
LET vi 
7060 
LET v: 
7070 
LET vi 
7088 
7098 
86GB 
D¢5) 
8001 
8002 
8003 
8004 
8085 
8006 
8007 
e988 
8009 
8018 
8011 
e012 
8015 
8014 
8015 
8016 


8017 LET AS(17)="o 
8018 LET AS(18)="g 
8019 LET AS(I9) =" 
920 LET AB(29)="g 
8021 LET AS(21)="o 
8022 LET AS(22)="o 
8023 LET AS(23) ="919i 
8924 LET AS(24) =" 

8025 LET AS(25)="9 

8026 LET AS(26)="o 

8027 LET AS(27)="9 A 


IF AS(F,2 TO 3)=" J" THEN 
silt RETURN 

IF AS(F,2 TO 3)=" Q" THEN 
#12 RETURN 

IF AS(F,2 TO S)=" K" THEN 
#131 RETURN 

LET VevVAL AS(F,2 TO 3) 
RETURN 

DIM AS(52,4)1 DIM P(S): DIM 


LET as(i)="9 Aa" 


LET za" 
LET sa" 
LET 4a" 
LET sa" 
LET 6A" 
LET 7A" 
LET Ba" 
LET oA" 
LET D190" 
LET @ Ja" 
LET AS(12)="@ Qa" 
LET AS(13)="@ KA" 
LET AS(14)="9 AB" 
LET AS(15)="@ 2B" 


LET AS(16)="@ 3B" 


9028 LET AS(28)="@ 20" 
8027 LET AS(29)="9 3 


8030 LET AB(3O) =" 
8031 LET AS(31)="9 
Q032 LET AS(32)="9 
8033 LET AS(33) 
8034 LET AS(34) =o 
8035 LET AB(35)="o 
G36 LET AS(36)="B190' 
8037 LET AS(37)="@ JC' 
Q038 LET AS(38)= 
8039 LET AS(39) 
8049 LET AS(40)= 
8041 LET AS(41)="9 


8042 LET AS(42)="@ 3D! 


8943 
8044 
8645 
8046 
80647 
8048 
e049 
avs 
ae51 


LET AS(43)—"9 4D" 
LET AS(44)="9 SD" 
LET as(4s) 
LET AS(46)="6 7D" 
LET A8(47)="@ BD" 
LET AS(4e)="@ 9D" 
LET AS (49) ="g19D" 
LET AS(S@)="@ JD" 
LET AS(51)="@ QD" 


@052 LET AS(52)="@ KD" 
@053 RETURN 
900® RESTORE : FOR asUSR "a" TO 


usr" 


9W19 READ us 


ku a7 


ra POKE a,user 


9028 NEXT a: GO TO 10 


9030 
60,24 
9040 
28 
9050 
16,56 
260 
6, 0, 
9070 
Si,S1 
9080 
9890 
190 
F119 
9120 
9130 
4 
9990 
9991 
9992 
ust 
9995 
9996 


DATA 24, 40,126, 255,255, 126, 
DATA 28, 28,8, 107,127, 197,8, 
DATA 16,56,124,254,254, 254, 


DATA 192,255, 255, 255, 255, 12 
24 
DATA 24, 204,51, 51,204, 204, 


DATA 6, 0,0,7,15,12,24,24 
DATA ®, 6,9, 192,240, 48, 24, 26 
DATA 24,24,12,15,7,2,8,8 
DATA 24,24, 48,249, 192,0,0,8 
DATA 8, 9,0, 255,255,9, 8,8 
DATA 24,24,24,24, 24,24, 24,2 


REMabcdefghijk 
REMABCDEFGHIIK 


BORDER 7: PAPER 71 INK @: C 
STOP 

SAVE "STUD POKER" LINE 9800 
GO TO 16 


WARREN'S 2068 HASIO'S 


Horizontal Bar Chart 


Warren 

HORIZONTAL BAR CHART is a routine in BASIC for 

the 152068 with an attached 152040 printer. The 
purpose of the routine is two-fold. One, it is a 


relatively short program that provides a bar chart to 
illustrate the comparative status of a number of items 
(up to 20) in an inventory. Two, it demonstrates one 
way in which the 2040 printer can print out and 
“couple” automatically several screens full of data. 
and print it as a single illustration. 

This program will print out one screen full, or 
two screens full, as the number of items requires. 

For example, we input data on 15 assumed and 
related items, in this case various fruits. We also 
included make-believe quatities and a title, in 
response to LINE 55 of the program. The routine is 
universal. You may enter any related items and 
respective quantities. The item name is limited to 12 
characters, in LINE 20. We also elected to call this 
FIGURE 1, but again, this may be changed to suit your 
application. Usually bar charts are used for a group 
of related items of 5 or more. Less than this and a 
pie chart may be a better choice. 

In order to understand the arithmetic of the PLOT 
and PRINT AT lines, such as 240, 250, 530 and 640, you 
should refer to a screen chart for the computer. There 
is one on page 152 of the User Manual. 


REM ## HORIZONTAL BAR CHART 


a 

2 REM #% “D-30", 3-17-38, UF 
S REM ## ENTER DATA 
3 : 
10 


: POKE 23653,3 
ow mary 
20? “3T 


4S IF I>20 THEN GO TO 12 

28 DIM AS(I,12): DIM oft) 

38 FOR n=1 TO I 

40 INPUT “Enter item No, “3 (nd 
j", afd quantity “;Asind O(n) 

45 IF Qin) omax THEN LET max=0( 


items, 5 to 


nD 

SQ NEXT_n 

55 INPUT “Enter title. Maximu 
m_of 32 Characters. "j;BS 
200 REM ss PLOT DATA 

218 LET U=160 

220 FOR m=1 TO I 

299 FOR n=@ TO 2 

240 PLOT O,U+3en: DRAW 25340 (Mm) 
vmax ,Q: NEXT n 


250 PRINT AT B1-V/8,4j;Agim);" = 
eam); units 
260 LET vsy-i 
270 IF _m=18 AND I=10 OR m>10 AN 
DB 1312 THEN GO To Sao 

28 NEXT m 

298 PRINT AT 19,16-LEN B$/2; BS; 
AT 20,12;"FIGURE 1" 

300 PLOT 0,0: DRAU 8,175: RAL 
BBS ,9: BEAU @,-17S: DRAW -255,0 


Fracre 


RPPLES = ipo Units. 


AUVOCRDOS = BB units. 
BANANAS = 2 units. 
BLUE BERRIES = 50 units: 
CHERRIES TE Units. 
[SRAPes = 15 units. 
GAAPE FRUIT = 25 units. 
TEnONS [Se units. 
(Tines = ii units. 
ORANGES = 115 units. 
BEACHES S52 units. 
[PERRS = 35 units. 
PINEAPPLES = 27 units 


PLUMS = 12 units. 

TANGERINES = 7 units. 

INVENTORY OF FRUIT 
FIGURE 1 


S08 PLOT 0,2: 
255,08: DRAW O,-17 
$10 IF I> =12 THE! 
528 PRINT AT 19,3 
AT 20,12; “FIGURE i 
538 PLOT 0,175: 
AU 255,8: DRAU O,2 
P 


600 


ara 


REM #2 PLOT CONTINUATION 


af CATA 


685 L 

628 FOR m=12 Ta © 

623 FOR 

630 PLOT @,U+S4n: DRAW 25340 im) 
“ax ,O: NEXT 1 

S4@ PRINT AT 24-U/8,1;AgimM;" = 
“7Otm);" units.” 

650 LET. -16 


670 NEXT m: RETURN 


Sinclair 2068 


A BROKEN 2068? FIX IT YOURSELF! 


method of testing for, and repairing a Timex Sinclair 
2068 with bad RAM chips. Though it is a simple project 
that most people with basic soldering skills are 
capable of completing, and the information presented 
here is believed to be correct, the author and pub— 
lisher take no responsibility for any damage done to 
the computer (or hobbyist) as a result of, or while 
using this information. 


not working is burnt-out RAM chips, The chip(s) are 
usually destroyed when turning on the computer with a 
printer or disk interface attached. Though I have no 
way of proving it, the most likely cause is a high 
voltage “glitch” produced by the switching regulator 
when it is "powered-up" under a heavy load. Note that 
one or all of the chips can burn out, and in any 
combination. 

There are three symptoms that may indicate bad 
RAM chips. The first is a blank screen when the 
computer is turned on. This suggests either a “brain 


RAM CHIP LOCATIONS IN TIMEX 2068, CHIPS ARE HARKED 4416-15 


ST-STtP de 
ND 


u7 
a 
> 
7 
: 
4 
a 


(9 serra no. __] 


ae EDGE OF PRINTED CIRCUIT BOARD 


TIMEX _TS-2000 
3235-85000 1-23R, 


CARTRIDGE CONNECTOR ——~ 


FIGURE ONE 


dead" 2068 (the SCLD...or "square chip" 
and is VERY difficult to replace, 
or that most of the 


is destroyed. 
IF you can get one), 
RAM chips have burnt out. The 


second symptom is a display that consists of a white 
border around a screen of "garbage". This indicates 
that at least one of the RAM chips in the first 16K 


bank is bad. The last and most obvious symptom is the 
free memory after power up is less than 38652 bytes 
(using the PRINT FREE command). If a Spectrum ROM is 
installed in the computer, the original Timex ROM will 


have to be replaced to use the FREE command. 
If your machine exhibits any of these symptoms, 
there is a chance it can be easily repaired. First, 


the computer's PC board must be completely removed 
from it's case. Save all the screws and be careful to 
avoid damaging the keyboard ribbon cable. Place the PC 
board on a non-conductive work surface and plug it in. 
Leave it turned on for a few minutes and then check 
each of the RAM chips for overheating (see Figure One 
for the chip locations). If any of the chips are hot 
to the touch, they are bad and need replacing. Mark 
them for removal. If none of the chips are hot and the 
computer still displays a black screen, the problem is 
probably not with the RAM chips. Consider sending the 
machine out for repair (to Dan Elliott of Promise Land 
Electronics--see May/June '88 issue of TDM for address 


listing). If the computer displays a border around a 
screen of garbage, chips U6 and/or U7 may have gone 
bad. If a normal sign on the screen is displayed, but 
only 22268 bytes are "free", chips U16 and/or U17 may 
have gone bad. If 5884 bytes are free, chips U12 
and/or U13 and possibly U16 and/or U17 may have gone 
bad. 


The chips that are hot to the touch should now be 
removed. Don't bother trying to remove them in one 
piece. Just cut or clip pins near the body of the 
chip, and remove the remaining pins from the PC board 
with a hot soldering iron and tweezers. If the chips 
are suspected to be bad but are not getting hot, a 
more difficult problem exists. The chips can be 
clipped off the board and discarded, or removed in one 
piece. If the chip is clipped off, you will never know 
if it was good or bad, and it will have to be re- 
placed. If the chip is removed in one piece (a very 
difficult task), the chip can be saved for testing and 
possible re-use...but only at the risk of possibly 
damaging the PC board. Make your own decision. 

Once the chips have been removed, the computer 
should be tested again. Connect it to a monitor and 


turn it on. If any of the remaining RAM chips are now 
getting hot, they should also be removed. If the 
display was formerly black, and now displays the 


10 


normal copyright 
available, the chips can be 
should work fine. If a border is displayed eround a 
screen of garbage, and chips U6 and U7 are still on 
the board, one or both of them may also be bad. Remove 
them for replacement or testing. 

New RAM chips for the computer will have to be 
purchased. The 2068 uses 4416-15's, which aro 16K*4 
RAM chips. The 15 in the chip number designates speed. 
In this case 150 ns (nano seconds). Purchase either 
120 or 150 ns chips, as the slower 200 ns chips will 
not work. Radio Shack does not sel! them, so they must 
be mail-ordered (suppliers listed at the end of 
the article). Consider purchasing extra RAM chips, so 
that if one of the RAM chips left on the board is bad, 
you won't have to re-order. Don't even think about 
soldering the chips in. Purchase IC sockets along with 
the chips. Sockets make it easy to remove a chip for 
testing, and at twenty cents each, are a lot cheaper 
than cutting a $4.00 RAM chip off the board. 

The sockets should now be soldered in place where 
the RAM chips once were. If the holes on the PC board 
are filled with solder, they will first have to be 
cleared. The best method I have found is to hold the 
PC board vertically in a vice, melt the solder from 
one side of the board with a soldering iron and use a 
solder pump to suck the molten solder out from the 
other side. Remove any solder splashes or excess flux 
from the PC board and solder the sockets into place 
using rosin core solder. . 

Insert the new RAM chips inté the sockets with 
the notch end of the chip pointing to the back of the 
PC board. Test the computr out of the case once again 
as described in paragraphs two and three. If every- 
thing checks out fine, the computer can be re~ 
installed in the case and used as normal. If the 
computer still does not work or has reduced RAM 
available, there are two possible reasons. Either 
there is yet another bad RAM chip (new or old), or 
another chip in the computer is damaged, but still 
operates. Re-test the computer for bad RAM chips, and 
if none can be found, consider having the computer 
professionally repaired. 


message, but with reduced RAM 


replaced and computer 


SUPPLIERS: 


JDR_ Microdevices. 
95030, 
order. 


110 Knowles Drive. Los Gatos. CA 
(800) 538-5000. Takes VISA & M-CARD, $10 min. 


JAMECO Electronics, 
94002, (415) 
order. 


1355 Shoreway Road, Belmont, CA 
592-8097. Takes VISA & M-CARD. $20 min. 


PUPOOTH HU AOUHEAHE UOTE LOO EELEUOL VEE ODROUEA SOUSA EH DNOD ENE OAM OUTED EGEUEUODHUORTEDUE OU UAVUUCSOUC PEON UOTE HOOUEeODCODEELOOREEOGG OEE SOOOUOAOLQOOGELU MU OQEAaHOOBODOGOL OFOALHUERETEEEVEOEOUEAUD 


curry P.O. BOX 5607 
computer [eel 


*#**e%* SUMMER CLEARANCE SALE #**## 


SOFTWARE for the T/S 100 All $2 ea. 

Mixed Game Bag I\Presidents\ Stk Mkt Calc\ Red Alert\ 
Night Gunner\ Hangman\ Fin Mor & Rec Keep\ Alien Invasion\ 
Meteorites\ Chess\ Gambler\ Cube Game\ Mixed Game II\ 
Organizer\ Home Asset\ Home Improve.\ VuCalc\ Geometry\ 
Pioneer Trail\ Damper-Glooper\ Croaka Crawler Plus many 
more —- Write for a list. 


T/S 1000 Computer (2K) with 3 Programs — $22.95 


SOFTWARE for the T/S 2068: 
Budgeter...%5 Stk Mkt Calc...$3.50 
Fighter Pilot...$12.95 


SOFTWARE for the Spectrum: 
Storm Bringer...$5 I, Ball...%6 Biggles...$8 
10th Frame...$10 Mag Max...%10 Snowman...$5 
Speed King 2...$5 Skyranger...$& Plus 
Onlys’, write for a list. 


SOFTWARE for the QL: 

Super Disk (TKII req.)...$19.95 Cribbage...%14.95 
SuperBoot. $14.95 (disk) QRAM...$39.95 

Graphic TI $18.95 Wanderer (RGB only)...#18.95 
Archive 2.38...%14.95 Grab Bag TI...814.95 
Presidents...$9.95 Nucleon...$19.95 


Super Checking...%14.95 Thompson Case (12)...%1.99 
Assembler...$34.95 


MAGAZINES: 

QL World: Current Issues - $4.25 \ Back Issues $3 
(Jan/Feb/Mar/Ap/May/June/Oct ‘87) 

Sinclair User: Current Issues - $4.50 \ Back Issues $2 
{call for list) 

We also have: Commodore Use Commodore International; 
Amiga User; Atari User; Atari ST User; Computer & Video 
Games; PC Amstrad; Amstrad User; Amstrad PCW...Call for 
Pricing. 


S/H Charges: Under $15 = $1 \ Under $30 = $2 \ Under $50 = 
#3 \ Under $100 = $4 \ Under $200 = $6 \ Over $200 = sa 


Sale Prices Good for 30 Days from Publication. 


Mass-Storage 


CASSETTE TAPE STORAGE 


2068 PROGRAM INDEX 


by V. Phillip Hosey 


This simple program is easily adaptable to productive activities while passing the few minutes 
virtually any computer. It not only provides a delay required for LOADing lengthy data. One last 
modicum of security, but files all your stored note: LINE 0 was obtained from Randall Larson's "NO 
programs by digital location on tape, eliminating a DELETE PROGRAM" listed in the NOV/DEC ‘87 issue of 
lengthy title-by-title search. I always incorporate TDM ("In The Mailbag"). Originally intended for the 
an attention-getting BEEP at the beginning of each Spectrum, it functions perfectly without modification 
program SAVEd LINE 1 so that I may divert to other on the T32068. 


il 


O>REM 1985:V. Phillip Hosey 
1 PRINT "STOP TAPE:CODE?": INPUT AS: IF a} T use my computer's serial 
$<>"(any CODE you want)" THEN NEW number as an access code. 


10 BORDER PAPER 0: FOR 1=0 TO 21: CLS : sou 
PRINT INK 7;AT 1,0;": V. Phillip Hosey/T GO LE ENE EY 925 07 SHEN, “GO-40.95 
$-2068:1985": BEEP .01,-1: NEXT i 81 IF SHEN. DBT. 
20 INK 2: CIRCLE 60,92,81 ae aoe ee 
23 INK 4: CIRCLE 207,55, 43 ey er insert 
25 INK 1: CIRCLE 198,136, 32 4 IF SHEN’ BEE digital” 2 aft 
30 PRINT INK 6;AT 2,10; "1";AT 3,7; "Progra 85 IP THEM (UBT e Gabeung yee ecco 
M"7AT 4,7; "-INDEX-";AT 14,23;"16k=90";AT 15 Sore belstslla aed iignane sien sanpinat 
123; "second" ;AT 16,22;"loadtime";AT 4,22; "1 7 GTE eg nen Ee ae 
NKEY$"; FLASH 1;AT 5,24; "#2": FLASH 0 08 IP INKEY§~"6" THEN LET 
40 FOR n=0 70 9: READ AS: PRINT INK 3;AT 9 oEE INKS 5 3°91 SHER UBT 
n+6,2;n;" "; INK 7;A$s NEXT n Bet PRINT Pet S:AT 3,22 Wa oarepa 4,22;" 
50 FOR y=0 TO 31: PRINT INK 7;AT 21,y;"." Se ig ia eae 
Heese eee mehey AT 15,23; "Forward" ;AT 16,22;" Tape To"; FLA 
60 IF INKEYS="" THEN NEXT y: BEEP .01,9: SH 1;AT 17,25;t;AT 21,7;"* PAUSE TO LOAD 


Go T0 50 ";INKEY$; FLASH 0: INK 7: LOAD INKEY$ 

95 CLS : LIST 99: BEEP 1,30: PRINT ; FLASH 
1;"REWIND TAPE THEN SAVE ": FLASH 0 
99 DATA “Index Editor", "BattleStarxEMIT",” ) you can list program names 
MSCRIPT Master","Printer Drive","Accounts:1 in order prior to storage. 
987",""s-2068 CDP", "File Matrix", "SmartMode (Ignore these samples) 
m","WordWright","Dive Guide" 


2068 TURBOLOADER 


by Floyd Chrysler 
(adapted from an original Spectrum program, 
with permission, by Esben Krag Hansen) 


Do you have lots of programs cn tape? Do you go crazy 
waiting for them to load? If you ansvered yes then you may be 
interested in this program to double the speed of your tepe 
loads. 


INPUT- This deals with the message start tape on SAVE’s 


I was in the same position whan I received the May 1986 INPUT @ prints the Turboloader message and the stert 


issue of "Your Sinclai: Even though I have the AERCO FO-68 I tape message and waits for a keypress. 

Still have lots of programs on tape I really didn’t went to move INPUT 1 print the Turboloader massage only and waits 
to disk and I still make backup copies of important progams for for a key press. 

jong tern stcrage. Using disk made my tape deck seem sc slow. INPUT 0 prints nothing and goes right into the save 


without wetting for a key press. 
In the magazine uss a program by Esben Hansen for the 


Spectrum that allowed you to save and load programs at variable PRINT~ This deals with LOAD/VERIFY commands 
baud cates From i500 Cnormal rate? to 3500 (more then double), Print 2 prints the turbolcader message and program 
I wanted to do this on a 2068 so I vawed to convert the program names as they are Found. 
to work on my machine. Print 0 nothing is printed. 
This was not as easy as I had thought. While a lot of the PRINT 2 and INPUT 2 ere the initial default values. 
program was compatable with the 2088, by just changing the ROM 
calls, the calls to the tape handling routines were «# problem. There is a lot of code to enter for Turboloader, I _heve 
On the 2068 the taps routines are ell in EXROM, it was eithac included a Hex loader progran to make it a little easier. Enter 


Dankswitching ors reurite to do the tape handling routines the loader program and save it. The code is listed in thres 
within the program. 1 chose the second and by some fiddling columns. The First is the address for that code line, Next is 
managed to get the program to work with most of the Functions in the code in blocks ef @ nex bytes. Last is,a check digit. 
ths original and only use a little over 200 bytes more. 

Uhen you run the hex loader it will ask you for a start 


The program supports all the tape conmands - Save, Load, address. The First time you should enter 63380, It will then 
Verify, and Merge. Turbcloader is invoked by a RANDOMIZE USR ask for the code. Enter all 16 characters (8 hex bytes) end 
53600. This is followed by the Turboloader commands - LIST, press enter. You will then be asked for the check number, Enter 
PRINT, INPUT, or RUN, And Finally your taps command - SAVE, it and if all is ok the program will display the next address  ~ 
Load, ‘ets. (which should match the next address in the code list), if there 
is en error the progcam will beep and redisplay the same address 
To save a screen at double speed: for you to reenter the line in error. 
RANDOMIZE USR 63500; RUN 3100: SAVE “pic” SCREENS At any tims you may enter STOP to the enter code massage and 


you will be prompted to seve the code entered to thet point, 
The keywords List, Print, Input, end Run will still werk as You can then restart at a later time by reloading the code and 
normal except when they follow a RANDOMIZE USR 63600. When used loader program and entering the next address From where you left 
es Turboloader commands they have the following meaning: OFF at the prompt, When you have entered all the code the 
program will prompt you to save the code, Once you have all 

LIST — This command reads a header from tape and lists it on the code saved you can start speeding! Enter CLEAR 63373: LOAD 
the screen. It displays progran length, data length "TURBO" CODE 63380. Remember the entry point to the program for 


for code, start line, etc. all user calls is 63600. 
ex: RANDOMIZE USR 63800: RUN 3100: SAVE “test” CODE 
63600,600: LIST Don't be intimidated by all the code. I'm sure you will 
find it worth the time to enter, If you have not yst spent the 
RUN - This changes the baud rate. It must be followed by a family fortune ona disk drive you will Find this program 


number ranging From 1500 to 3500, in steps of 200 invaluable. 
(4500,1700,1800, etc.). A good tape recorder should 
be able to handle at least 3100. 12 


(ready 


addr 
63380 
63398 
633396 
63404 
63412 
63420 
53428 
63435 
6344+ 
63452 
63460 
63468 
83476 
63484 
63492 
63500 
53508 
63516 
63524 
63532 
63540 
6asi8 
63556 
53564 
53572 
63580 
53588 
635865 
63604 
63612 
63620 
63628 
63636 
63644 
83652 
63650 
63688 
63576 
63684 
53692 
63700 
63708 
63716 
63724 
63732 
63740 
63748 
63756 
63764 
63772 
53760 
63788 
63786 
63804 
53812 
63820 


Hex Loader 


30 DEF FN hCaS)=CODE aS-48-(7 
AND as>"9"> 


40 POKE 23658,8 
SO INPUT "Start Address: 


star 
t 


60 IF start=63380 THEN GO TO 
30 

70 INPUT "Have you re-loaded c 
ode?” ; zs 

BO IF 28<> "Y" THEN PRINT "Lo 
ad code and re-start”: STOP 

SO LET adrestart 

100 FOR testart TO 65444 STEP B 


110 LET sum=0 

120 PRINT adr;" "; 

130 INPUT “enter code ";cS 

140 IF cS="STOP” THEN GO TO 38 
° 

150 IF LEN cS<>16 THEN BEEP .2 
S,.25: GO TO 130 

160 FOR i-1 TO 8 

170 LET aS=c$(2) 


Turboloader Code 
for Hex Loader program) 


63828 
code check Beer 
CF1A7EE6COZ0151A B64 53852 
13BE2320021ABE1B 521 63850 
BB3008ESEBCD2017 823 63868 
E116ECCDFOF718F2 1427 63876 
7EYFFEBOCBES214B 1124 63884 
SC7EFEBO2B25B928 soz 63892 
OBCSCDZ017C1EB18 517 63800 
FOEGEOFEAQ2012D1 1367 53908 
DSES23131ABE2005 750. 63916 
1730F7E11803E118 819 B3924 
EO3EFFD1EB3C37CD 1305 63832 
FOF7i8C420100822 797 53940 
SFSCEBCD2017CDSO S67 63948 
L7EB2ASFSCOBOBDS 716 63956 
CD201722SFSC2AS3 606 63964 
SCE3CSOB38072BCD 635 63972 
BE1@231803C0BB12 677 63580 

-@3C1D1EDS3S3SCED 1169 63988 
SBSFSCCSDSEBEDEO 1336 63335 
EICIDSCDSO1701C3 1343 BY004 
BDZOFDA7OYCE3E7F S06) eyo1e 
DBFE1FDOASES2028 1183 64020 
F37S2FYFE6O7F608 S81 sxoea 
D3FE37CSFS3AN8SC 1186 64035 
EG3E0FOFOFD3FE3E 859 BYou4 
7FDBFE1FFB3802CF 1147 BY40S2 
OCFicsooecoc0000  ¥S4 64050 
OOOCQOOODFFECDE8 530 64058 
47FESACEO2CFOBFD 896 54078 
BYOD2ASDSCESE72@1 785 ByOs4 
7OFGESFEFS28SDFS 1464 6y0s2 
ESCDCDFEE1F1FEEE 1684S 64100 
@@SFFEF7CA27FAFE 1361 64108 
FOCA7GFAOGOOFEFB 1320 64116 
@8G6104FEEF28SCoO4Y 770 BY1e4 
FED6265704FEDS28 1106 64132 
S@22SDSCFD3SSODE1 84S 64140 
COCHFBEDYB7ESCC9 1372 By14e8 
BA3BFFFEO2COC3AS 1184 64156 
OBSASCFFFEO2COCD 1034 Bu164 
ASOB1160FEAFCD3F 987 54172 
O7EDYB37FFCD8817 333 64180 
3EODD7CSCDOOFSFE 1199 suisse 
O3D276FA323BFF18 969 64195 
DSCUOOFSFEO330F1 1216 sy204 
323CFFCSE7CDES18 1258 By212 
C31E1F763239FFE7 969 s4220 
CDEFIBCDBS28283D 954 By228 
0111003439FFA728 595 54235 
O2OEZ2F7DSDDE108 952 suey 
OBSE20121310FCO0 631 64e52 
3601FFCDAF2F21F6 1016 54260 
FFOBOS0330103A33 457 64258 
FFA72003C3701478 S04 
B1280A010AOCO0DDES 688 
E1@3EBEDBODFFEEY 1613 


20473A3SFFFEO3CA 
EDIBE7CD702CCBFS 
300C2100003A39FF 
3D2616C3911BC2ED 
1 BCD89282818237E 
DD770B237EDD770C 
230D710E3E01CB71 
28013CDD7700EBE7 
FE2S20DAE7EBCIGD 
FBFEAAZO1C3A39FF 
FEO3CAED1BE7DD36 
OBOODD350C1B2100 
40DD7S50DD0740E18 
4AFEAF2O4DSASSFF 
FEO3CAED1BE7CDE7 
21200C3A39FFA7CA 
EDLBCDS11C180FCD 
ES1BOFFE@CeB0c3A 
SSFFA7CAEDIBCDS1 
1C1804E7CDES1BCD 
231FDD710BD0700C 
cne31Fnn7 1000070 
OESO6S0D360003C3 
GDFEFECA2807D036 
OESOC34DFB3A39F F 
A7C2ED1BE7CDES1B 
C344FBE7CDES1BCD 
231FCSCDES300164 
OOCDES30EFOS38CD 
1ELFFEOF3834F E24 
‘3O30DEOFCBY7202A 
CB27CB27214DFFO6 
OO4FOSEB213DFFO6 
OBCS1A1S4E234523 
O2C110F53A1BFES2 
4SFECIED4337FFC3 
CDFECFOSE7FEODeS 
OGFESA@a02CFOB11 
1100DD2126F FAF37 
COCEFD30Fe3ae6rF 
FEO430EBCOC4FB3E 
020D301211F6FECD 
3F071127FFO60A1A 
FE203001AFD71310 
FG3EODD73A25FFA7 
2822F E0328SD3E0S 
1150FECD3FO73A34 
FFFSE61FCSYOD7F1 
€B7726033E24D73E. 
ODD7164EED4B33FF 
78E6C02010CS3E02 
1160FECD3FO7C1CD 
88173E0DD73E0611 
GOFECD3FO7ED4835 
FFCSCD3AFB3E0711 
GOFECD3FO7C12A31 


13 


180 
s) 
190 
200 
210 
220 
230 
240 


250 
260 
40 
270 
280 
280 


300 
310 
320 
330 
B40 
350 
350 
370 
380 
your 
3390 
400 
s33 


932 
1308 
463 
921 
634 
as4 
762 
307 
1315 
1105 
1229 
358 
730 
gg2 
1380 
816 
B22 
887 
1232 
953 
758 
351 
688 
1138 
1035 
1317 
1411 
eso 
381 
728 
673 
B55 
678 
468 
B4s 
1329 
1207 
585 
784 
1302 
1252 
gags 
423 
760 
1054 
531 
752 
1479 
740 
sue 
651 
1040 
534 
sso 
1052 
gos 


POKE adr,FN h(cS)*16+FN hCa 


PRINT c8(1);a3; 

LET cS=cSC3 TO ) 

LET sum=sum+(PEEK adr) 

LET adrmadr+i 

NEXT 4 

INPUT "Check Number=";chack 


PRINT " ";sum 
IF sumé>check THEN GO TO 3 


NEXT t 
PRINT "END OF CODE” 
SAVE "“TURBO”CODE 63380,2066 


PRINT “VERIFY” 

VERIFY "TURBO”CODE 63380 
PRINT “FINISHED” 

STOP 

LET adreadr-8 

BEEP .5,1 

PRINT "ERROR - RE-ENTER” 
60 TO 110 

INPUT "Do You vant to Save 
work? CY or N2";zs 

IF zS="¥" THEN GO TO 280 
STOP 

SAVE "hexload" LINE 10 


64276 
By2e4 
Biese 
64300 
64308 
64316 
54324 
64332 
64340 
64348 
64356 
54364 
64372 
64380 
64388 
64355 
BY4OH 
euuie 
54420 
su4e28 
54436, 
Seay 
ee4se 
54460 
eu468 
BY476 
eu4e4 
BY4s2 
54500 
54SOB 
64515 
54524 
64532 
54540 
e4sys 
54556 
euse4 
54S72 
s45e0 
54588 
5Yss5 
BY6O4 
64612 
54620 
B4628 
64635 
eee 
64652 
S466 
64658 
64675 
BYBB4 
e4ss2 
64700 
64708 
64716 
By7e4 
64732 
64740 


FFA7EDY2@444DC03q 
FB180F3E031160FE 
CD3FO7EDYB33FFCD 
3AFB3E041160FECD 
3FO7ED4B31F FCDES 
30CDA1313E00D7C9 
¢b231FDD71000070 
OEDD360000z2A58SC 
EDSBS3SC37EDS2DD 
7SOBDD7YOC2A4BSC 
EDS2DD7S0F 007410 
EB3A39FFA7CAODFD 
E5011100000scpcD 
FBODES111100AF37 
COCBFDDDE130EF 3A 
3BFFA7280CCDCYFB 
SEFECD3012FD3652 
030E80D07ECODDBE 
EF20020EF5FEO430 
CD473A38FFa77e20 
0811FEFECSCD3FO7 
C1DDESD121FOFF19 
O60A7E3C20037880 
4F131ABE2320010C 
SA3BFFA728021AD7 
10EFCB7920S983A3B 
FFA728063E0D07CD 
CDF8E1DD7E00FE03 
2BOC3A3SFF3NCA41 
FCFEO@CAEEFCESDD 
GEFADDS6F SDDSEOR 
DDSGOC7CBS2B0EED 
5238272808DD7E00 
FEO3C2Q4F7E17CB5 
2006DD6EODDDSEOE 
ESDDE13A39FFFEO2 
372001A73EFFCDCB 
FDD8C3S'#F 7DDSEOB 
DDS6OCES7CBS2006 
131313EB180CDD6E 
FADDSSF BEB37EDS2 
38091105001 9444D 
CDBB1FE1DD7E00A7 
283D7CBS26132B468 
2BYE2BO303030D22 
SFSCCD5017D02ASF 
SC2ASSSC2BDDYEOB 
DDY6OCCSO3030300 
7EFDFSCOBB1223F1 
77012373237223ES 
DDE1373EFF188FEB 
@ASSSCEBDDZESFSC 
DDYEOBDDYSOccScD 
4D17C1ESCSCDBB12 
DD2ASFSC23DDYEOF 
DD461009224B5CDD 
660E7CESCOZ00ADD 
GEOD2e42SCFD360AR 
OOD1DDE1373EFFC3 


1133 
722 
1098 
S47 
1124 
g54 
951 
512 
1038 
685 
1025 
1240 
887 
362 
1452 
1182 
976 
s03 
833 
975 
397 
1405 
486 
394 
822 
880 
363 
1282 
750 
1650 
1260 
315 
$72 
1376 
719 
1301 
980 
2385 
asi 
659 
1433 
BS? 
1162 
578 
428 
653 
568 
730 
1310 
esi 
1220 
708 
1015 
1129 
733 
738 
S25 
632 
1222 


adér code chock g1972 oB1STssEornarE2: 947 Beeeo dcapuaippavisess 713 
64980 SOFBESDBFEIFES20 1323 2 
iio aercoossonmosene ses Sisee Foowsrorcccseere ze Ge oaeeey ee 
64764 ESDDE1373EFFCD3A 1310 BS Or RELISOIORECE, “B64. BSaue YCHSHEY7SHYBBAYC 712 
64772 FCELEDSBS3SCC395 1325 §S004 7CBS20FSCDS7FE3O 1180 SS252 YSHEY7SUYB2OUFYG SSS 
64780 F7ESSASCFFA7@824 1082 &5012 EBOBSCCDS7FES0E# 1219 65260 20S641524S41424C SES 
SY7E8 SDZOOASEFDEDaOI2 Ges 55020 3ECBBS30EQ2420F1 1025 65268 4SSSPAONSOSS4F4? BES 
64788 CDDSi11817¢DAS0g Bee 65028 O6CSCUSBFESOD578 1138 65275 S2414DBACDYESSYD 663 
54804 CDOCDF83E011160FE 1088 65036 FEDISOFYCOSBFEDO 1516 see Yeussez041se25241 SHS 
64812 CD3FO7CDDS11CDAS 1088 Be0tlh TSE OG2F ©S0006E0.-. 66% 65292 SSBACDYS4¥BY1S241 639 
64820 OBCDCDFEDDES1111 1150 Sect. See ee ne. 65300 YaS4NSSez0415es2 563 
6 0A 
S4828 OOAFCDSZFDODEIO5 1167 Broce ir eter es 65308 YISSEAODYESSSY4S 661 
84895 3e7610FDDDSEORON sey BEOTES Oaanconboeteonoe tee 65316 S3BA000000000000 263 
Suess SGocsErrooeieiso 374 fons Peeeneereroe Goer 65324 0000000000000000 0 
O1FCB7F28 1033 65332 OO000ODCOSO00002 +227 
5YB60 O3z19s0C0R81aDD2B 491 Bolas Gene ones qoeg 85340 O288FDA7FDADFOBB 1424 
64868 FI 
Suse Eeorosadeneorsos 740° 85108 FEOICSCDSEFEO3E 1276 Gease FESpuesEsiboveee leu? 
64884 eSFEGEFDOSeF10FE 959 Bot 16. ROGSa#F BBDSYsooe »: 636 65364 1637303q2DB7BSD0 817 
64892 D3FE3EOCO63710FE B70 Seley WeuPuCuPaiuueo7r S92 85372 1832393S2BRDBFDY 813 
54300 UD3FEO1003B086F18 681 GS132 S1S9SB3620NSWBEB 432 65380 132E343124C4C6D9 813 
64808 OS7AB32B0BDD6E00 692 ES 120) Bea SeQeOte tL Sse “85 65388 12e9302CiFCACCDD #803 
64316 7CADS73E02371817 SEB Bigs cocucoenie cee 85356 102528281BD103E2 603 
Gu924 BC18FS7SCB7B10FE 1091 
wiss2 3o0losiei0rensre ass SS16% yHEOSOSeuss36320 S29 Geu12 ODIGePIFIZOEFOES BUS 
GYSYO OS3EZOEFOSAFSCCB 782 85172 HIMESS2ONBYSDSS3 708 65420 OCISiE1BOEEYESEF 804 
64348 1SZOFB1BDD230631 626 Eline. aeeneueaaeneas me 65428 OA1S1S9160SEBEDF4Y 6801 
64956 3E7FDBFE1FDO7A3C 1083 = 
64354 20C70S3B10FECS14 787 Bat OG. 314 tte 15595954) “708 Bewu! oveccocoscoovces °° 
GS204 YCYStE47S¢48204F S61 


BANK-SWITCHING RAM 


PRACTICAL 2068 BANK-SWITCHING 


by Stan Lemke 


Although some bank-switching applications might 
encompass seemingly insurmountable programming 
obstacles...there are many others that can be 
accomplished with ease! I'd like to present three 
bank-switching examples/applications that can be 
adapted and expanded on for a wide variety of uses. 


BANK SWITCHING THEORY--FROM A LAYMAN'S PERSPECTIVE 


What is bank switching? In very simple terms, it 
is a way to direct the computer to switch between 
different “banks” of memory circuits. This is 
accomplished in a program with the OUT 244,VALUE 
command, where VALUE defines which memory "banks" are 
being used. Although the computer can only talk to 
64K of memory (8 banks of 8K each) at any given time, 
BANK-SWITCHING can switch in/out different banks of 


Memory...and make it appear like more memory. One 
little detail that makes this all possible, is that 
when you swtich out one memory bank for another, the 


memory in that bank remains just the way you left 
it...s0 when you return to it, you can continue on 
just as before! 

Another important detail is that we will only be 
working with memory above location 32768. By doing 
this, we will not interfere with the computer oper- 
ating system and greatly simplify our work. This 
means that we will only have an additional 32K of RAM 
to work with, but that almost doubles the memory 
capacity we are currently working with after sub- 
tracting that used by the operating system! 

Memory is "bank-switched" in 8K chunks using the 
OUT 244, VALUE command. VALUE determines which chunks 
are being used. The following table defines VALUE and 
the "DOCK" memory addresses that are used. 

Now, by adding various values, one can activate 
multiple banks of dock memory (i.e.. VALUE = 64+128 = 
192 operates on addresses 49152 - 65535). To reset 
all banks to the standard memory, use VALUE = 0. 
NOTE: We will only be activating chunks with 
addresses above 32768 (VALUE = 16 and above). AERCO 
FD-68 Users: The AERCO disk system requires that 
chunk 1 be active to utilize the disk, therefore, add 
1 to your VALUE to keep the disk active. 


14 


Value Dock Memory Add 
1 STO 
= o1 - 16383 
4 16384 - 34675 
cs S45TE - SETET 
16 SETes - 46959 
33 AGSEG - 49151 
G4 49152 - ST345 
128 STa44 - 655356 
BANK-SWITCHING RAM (where to get it) 


Add-on bank switchable RAM can be obtained from 
a variety of sources. The AERCO disk .interface comes 
with 64K of additional bank-switchdéble RAM built 
right in. Another source ie RAM cartridges that plug 
into the 2068 cartridge dock such as the one designed 
by Tom Bent (Quantum Levels), and once marketed by 
Thomas B. Woods, or the one available from Lem 
Software (see the ad on the back cover of this 
magazine for a 32K RAM cartridge). Other sources of 
RAM are available, like the new RAMdisk from LARKEN, 
and there are probably others that I am not aware of. 


WHAT CAN WE DO WITH IT? 


OK, what can we do with this add-on memory? What 
is the #1 complaint about 64K computers? They have so 
little memory to work with! There is always more data 
than memory to hold it! The #1 use for more memory 
will be to store more data. So, my first example is a 
short data transfer program. 


XFER_1 (LISTING A) 


XFER_1 is a ZEUS assembler source listing, ready 
to be assembled. LINE 270 is set to assemble this 
routine starting at 39000 (RANDOMIZE USR 39000). 
Following the source file is a dis-assembly of the 


routine identifying the memory address, 
that address, and the assembler instruction 
associated with that address. I would like to thank 
AL Schremmer, an active member of the Kansas Area TS 
User Group for writing this very helpful and unique 
dis-assembler! 

XFER_1 is a simple program that will transfer 
(COPY) data from one bank to another bank. As 
written, 24064 bytes of data are copied from 
standard memory starting at address 41300 to the dock 
bank, also starting at address 41300. The “source” 
bank is the source of the data to be copied...and 
could be the dock bank. The “destination” bank is 
where you are copying data to, and could be regular 
memory (with a little modification). Also, this 
example copies data to the same address in the dock 
bank, but you can see that this also can be changed 
easily. 

The way it works is this: after assigning the 
destination and source addresses, and the number of 
bytes to be copied (LINES 290 to 310), the source 
bank is activated (LINES 430 and 440) and 1 byte is 
copied into the accumulator and saved by pushing it 
onto the stack (LINES 450 and 460). Then the 
destination bank is activated (LINES 570 and 580) and 


the value at 


placing the destination byte back into the source! 
This routine works much like XFER_1 above. The key to 
this program is the use of the AF and alternate AF 
registers, and exchanging these to easily allow the 
exchange of the source/destination values. 


XFER_3 (LISTING C) 


The third example is a merging of the source/ 
destination data. This application superimposes the 
source data on the destination data using the "OR" 
function, and is equivalent of overlaying two 


pictures on a light board...ending up with one. I've 
used this function with my PIXEL PRINT PROFESSIONAL 
(desktop publisher) program, to combine (or merge) 
two PIXEL PRINT files. As you can sea. the operation 
of the program is quite similar to the two above with 
a simple modification for the "OR" function. NOTE: 
both the source and destination addresses contain the 
merged data. 

Now, I don't pretend to be a very good assembly 
programmer, so I am sure there are many other ways to 
do these jobs. But, if I have been able to show you 
enough to get your interest peaked, and convinced you 
that BANK-SWITCHING is not an impossible task, then 


the saved byte is recalled and stored at it's I've accomplished my goal! i 
destination address (LINES 590 and 600). The Keep Garmin: and start taking advantage of 
destination and source addresses are incremented 2068 BANK ING . 
(LINES 670 and 680) while the number of bytes that 
are to be copied is decremented (LINE 690). The 
number of bytes remaining is checked to see if it is XFER_1 
zero (LINES 700 to 720), and if not, the process is 39017 > 211 > out (N),a 
repeated. When complete, the source bank is activated 39000 > 33> 1d _h1,NN 39018 > 244 = <244> 
(LINES 730 and 740), and the program ends with a piseeeered SAI SOO7 39019 > 241 > pop af 
39002 > 161 39020 > 119 > ld (hid,a 
RETURN. 39005 >17 > 1d de, NN 39021 > 19 > inc de 
39004 > 84 <41500> 39022 > 35 > ine hl 
XFER_2 (LISTING 3) 
39005 > 164 39023 > 11 > dec be 
A second form of data transfer useful in Soon : > 2 ao eeaet 39028 > 120 > Id a,b 
bank-switching is the ability to "swap" data between 39008 > 94 SrOne 2 ae : orc ne 
banks. This is the function of routine XFER_2. Where 3 7 3 jr_nz, 
XFER_1 merely copied data from one bank/address to sera 2 $2 are eon Soares cae baeen 
another, XFER_2 performs a swap function, copying the 39011 > 211. > out (n,a Seas > 62 > ld a, 
data from the source into the destination, and then 39012 > 244 <244>” Reieag oi : oe Onva 
39013 > 26 => 1d a, (de? x 
39014 > 245 > push’ af ocen ecan ast see 
39015 > 62 > 1d a,N 39033 50> nop 
39016 > 225 <225> 
LISTING B 
LISTING A 00390 ; SOURCE BANK = 1 (AERCO) F 
bee. pes 00400 ; SOURCE BANK = 0 (OTHER) ooole XFER_2 
3 = 00410 3 4 
00020 ; : 00030 3 PRACTICAL 
3 00420 5 H os 
peiveeid BANC GunTCHTig 00430 XFERI LD A,1 ; SOURCE BK 0080 | BEN aoe TUNE, 
90080 5 00440 OUT (244), 3 ENABLE Ii 00060 | HHHteteeteteeeteedee 
00060 5 tHe HHH Eee SOAS LP Ae (ES 5 CORD Ss: VACHE 00070 ; + THIS SAMPLE PROG. + 
00070 ; + THIS SAMPLE PROG. + CORED, PUSH AF GU SAVE LF, 00080 ; + WILL SWAP 24064 + 
00080 ; + WILL COPY 24064 + ooaeo 5 00090 ; + BYTES FROM MEMORY + 
. i } + ADDRESS 4130 + 
gore t+ vieg can Percy sesso Soi a ta 
s 00500 ; NEXT, ENABLE THE DEST. : 
00110 3 + STD. RAM TO 41300 + 00120 ; + OF THE DOCK BANK. + 
00120 ; + OF THE DOCK BANK. + 0051013", (BANK, (AND STORE, JHE OO1SO § HEHE 
O01S0 5 Ht 00520 ; SOURCE BYTE THERE oo1a0; . f 
0150 3 (c) S D LEMKE 1988 ae i 00140 5 a 
00160 5 coerce ae ee anni Aen COTHERD 00170 ; LEMKE SOFTWARE DEVELOP. 
00170 ; LEMKE SOFTWARE DEVELOP. 3 00180 3 2144 WHITE OAK 
$ 00570 LD A,225 ; DESTINATION 2 
ie. nae Bosse ur (aan ay eansue ty gue gs Min, Be ere 
ROS pee Pgarii we eres 00590 FOP AF ; RECALL S. VALUE perce 
00210 ; - 00400 LD (HL), 3 STORE IT 00220 j 
00220 3 O01 5 00230 ; GETTING STARTED... 
00230 ; GETTING STARTED... 00620 5 00240 3 SET SOURCE, DEST, AND 
00240 ; SET SOURCE, DEST, AND 00830 3 INCREMENT THE SOURCE 00250 ; NUMBER OF BYTES 
00250 ; NUMBER OF BYTES 00640 ; AND DEST. ADDRESSES. 00260 5 
00240 ; 00650 ; CHECK TO SEE IF DONE. 00270 ORG 37000 =; CODE ADD. 
00270 ORG 37000; CODE ADD. 00660 5 00280 ; 
00280 ; 00670 INC DE ; SOURCE + 1 00290 LD HL,41300 ; DEST. ADD. 
00290 LD HL, 41300 ; DEST. ADD. 00680 INC HL ; DEST. + 1 00300 LD DE, 41300 ; SOURCE ADD. 
00300 LD DE, 41300 ; SOURCE ADD. 00670 DEC BC ; LENGTH - 1 00310 LD BC, 24064 ; LENGTH 
00310 LD BC, 24064 ; LENGTH 00700 LD A,B ; "B" INTO ACC. 00320 ; 
00320 5 00710 OR ©; SUM WITH “cH 00330 5 
00330 ; aaa 00720 JR NZ,XFER1 3 "BC" = 0 ? 00340 ; 
00340 3 00750 LD A,i ; RESTORE S. BANK 00350 ; BEGIN BY ENABLING THE 
00350 ; BEGIN BY ENABLING THE 00740 QUT (244),A 3 ENABLE IT 00360 ; SOURCE BANK AND SAVING 
00360 ; SOURCE BANK AND SAVING 00750 RET 3 ALL DONE 00370 ; THE SOURCE BYTE 
00370 ; THE SOURCE BYTE 00380 3 
00380 ; 00390 ; SOURCE BANK = 1 (AERCO) 
15 00400 ; SOURCE BANK = 0 (OTHER) 


00810 + LISTING ¢ 
00420 5 00010 XFER_3 
00430 XFER2 LD A,1 ; SOURCE BNK 00020 3 ---------: manner 00450 LD A, (DE) ; LOAD S. VALUE 
00440 OUT (244),A 3 ENABLE IT 00030 ; PRACTICAL 00460 PUSH AF =; SAVE IT 
00450 LD A, (DE) ; LOAD S. VALUE 00040 ; BANK-SWITCHING 00470 ; 
00460 EX AF,AF” 3 SAVE IT 00050 5 00480 5 
00470 ; 00050 5 HHHHHHHH ett 00490 5 
00480 ¢ 00070 ; + THIS SAMFLE FROG. + 00500 ; NEXT, ENABLE THE DEST. 
00890 ; 00080 ; + WILL MERGE 24064 + 00510 ; BANK, AND STORE THE 
00500 ; NEXT, ENABLE THE DEST. 00090 ; + BYTES FROM MEMORY + 00520 ; SOURCE BYTE THERE 
00510 ; BANK, AND STORE THE 00100 ; + ADDRESS 41300 OF + 00530 5 
00520 ; SOURCE BYTE THERE 00110 ; + STD RAM AND 41300 + 00540 ; DEST BANK = 225 (AERCO) 
00530 ; 00120; + OF THE DOCK BANK. + 00550 ; DEST BANK = 224 (OTHER) 
00540 ; DEST BANK = 225 (AERCO) OO1SO 5 tHtt ttt teRtE Ett e 00560 ; 
00550 ; DEST BANK = 224 (OTHER) 00140 ; 00570 LD A,225 ; DESTINATION 
00560 5 00150 ; (c) S D LEMKE 1988 00580 OUT (2447,A ; ENABLE IT 
00570 LD A,225 ; DESTINATION 00140 3 00590 POP AF RECALL S VALUE 
00580 QUT (244),A 3 ENABLE IT 00170 5 LEMKE SOFTWARE DEVELOP. 00600 OR (HL) 3; “OR" DEST VALUE 
00596 LD A, (HL) 3 LOAD D. VALUE 00180 5 2144 WHITE OAK 00610 LD <HL),A ; STORE DEST. 
00800 EX AF,AF? ; SWAP VALUES 00190 3 WICHITA, KS. 67207 00620 PUSH AF ; SAVE SUM VALUE 
00610 LD (HL),A ; STORE DEST. 00200 5 — 00430 5 
00620 5 00210 5 — 00640 5 ..... ENABLE THE SOURCE 
00830 ; ..... ENABLE THE SOURCE 00220 3 00450 ; BANK, AND STORE THE 
00640 ; BANK, AND STORE THE 00230 ; GETTING STARTED... 0060 ; "SUM" THERE 
00850 ; DEST. BYTE THERE 00240 ; SET SOURCE, DEST, AND 00470 3 
00860 3 00250 ; NUMBER OF BYTES 00680 LD A,1 3 SOURCE BANK 
00870 LD A, 1 3 SOURCE BANK 00260 5 00690 QUT (244),A ; ENABLE IT 
00680 OUT (244),A 3 ENABLE IT 00270 ORG 39000; CODE ADD. 00700 POP AF; RECALL "SUM" 
00690 EX AF,AF’ ; SWAP VALUES 00280 ; 00710 LD (DE),A ; STORE S. BYTE 
00700 LD (DE),A ; STORE S. BYTE 00290 LD HL, 41300 ; DEST. ADD. 00720 3 — 
00710 EX AF,AF? ; RESTORE AF 00300 LD DE,41300 ; SOURCE ADD. 00730 5 
00720 ~~. 00310 LD BC,24064 3 LENGTH 00740 3 INCREMENT THE SOURCE 
00730 00320 ; 00750 ; AND DEST. ADDRESSES. 
00740 3 INCREMENT THE SOURCE 00330 ; 00760 ; CHECK TO SEE IF DONE. 
00750 ; AND DEST. ADDRESSES. 00340 ; 00770 3 
00760 ; | CHECK TO SEE IF DONE. 00350 ; BEGIN BY ENABLING THE 00780 INC DE ; SOURCE + 1 
00770 5 00360 ; SOURCE BANK AND SAVING 00790 INC HL 3 DEST. +1 
00780 INC DE ; SOURCE + 1 00370 ; THE SOURCE BYTE 00800 DEC BC ; LENGTH - 1 
00790 INC HL ; DEST. + 1 00380 5 00810 LD A,B 3 “E" INTO AC 
00800 DEC BC ; LENGTH - 1 00390 ; SOURCE BANK = 1 (AERCO) 00820 OR Cs SUM WITH "C” 
00810 LD A,B ; “EB” INTG ACC. 00400 ; SOURCE BANK = 0 (OTHER) 00830 JR NZ,XFERS ; “BCY = 0 7 
00820 OR C —;_ SUM WITH "Cc" 00410 5 00840 LD A,1 3 RESTORE S. BANK 
OOB30 JR NZ,XFER2 3 "BC" = 0? 00420 5 00850 OUT (244), 3 ENABLE IT 
00840 LD A,1 ; RESTORE S. BANK 00430 XFERS LD A,1 3 SOURCE BNK 00860 RET 3 ALL DONE 
008S0 OUT (244),A : ENABLE IT 00440 QUT (244),A 3 ENABLE IT 
00860 RET 3 ALL DONE 
XFER_2? XFER_S 
39000 > 33> 1d-h1,NN 39000 > 33> 1d h1,NN 
39001 > 84 <41300> 39001 > B4 <41300> 
AFRSOFTWARE® | z=)" ai 
39005 > 17 > 1d de, NN 39003 > 17 > 1d de,NN 
397004 > 84 <41300> 39004 > 84 <41300> 
Presents: 39005 > 161 39005 > 161 
AAA ALA . 39006 > 1 > 1d be, NN 9006 > 1 > 1d be, NN 
Powerlul And Inexpensive 39007 > 0 <2a064> 39007 > 0 <24064> 
A 397008 > 94 37008 > 94 
Business Software 39009 > 62 > Id a,N 39009 > 62 > 1d a,N 
‘nclair” S901 > 1 <1> 39010 > 1 <1> 
For"Timex-Sinclair 39OLL > 212 > out (N),a 39011 > 211 > out (Nya 
B9O1Z > 24a <244> 39012 > 244 <284> 
Computers 39013 > 26 > Id a, (de) 3901S > 26 > Id a, (ded 
39014 > 8 > ex af,at’ 39014 > 245 > push’ af 
39015 > 62 > 1d a,N 39015 > 62 > 1d a,N 
39016 > 225 = <225> 39016 > 225 — <225> 
39017 > 211 > out (N),a 39017 >/211 > out (N),a 
39018 > 244 = <244> 39018 >°24a 0 <2a4> 
39019 > 126 > 1d a, (nid 39019 >'241 > pop af 
39020 >8 => ex af,af? 39020 > 182 > or (hl) 
39021 > 119 > 1d (hl),a 39021 > 119 > 1d thl),a 
39022 > 62> 1d a,N 39022 > 245 > push at 
39025 > 1 <i> 39023 > 62 > 1d a,N 
YUS-ZX Financial Report Generator. 397024 > 211 > out (N),a 39024 > 1 <i> 
Printout Of Sane .. a 39025 > 244 © <244> 39025 > 211 > out (N,a 
39026 >8 => ex af,af? 39026 > 244 = <244> 
APPOINTMENT SCHEDULER 39027 > 18 > 1d (ded,a 39027 > 241 > pop af 
39028 >8 => ex af, af” 39028 >18 > 1d (de),a 
s pat 39030 > 35 > inc hl 39030 > 35 > inc hi 
39031 > 11 > dec be 39031 > 11> dec be 
Send ASE For Fe Caaog 39032 > 120 > 1d a,b 39032 > 120 > 1d a,b 
ae Onn rar ie 39033 > 177 dor c 39033 > 177 dor 
1605 Pennayiania Ave, 39034 > 32> jr _nz,DIS 39034 > 32. > jr _nz,DIS 
Wo. 208, 39035 > 229. <229> 39035 > 229 <229> 
Mari Beach, FL33139 39036 > 62 > 1d a,N 39036 > 62 > 1d a,N 
(305) 531-6464 39037 > 1 <> 39037 > 1 <i> 
“FLORIDIANS ADD SALES TAX 39038 > 211 > out (N),a 39038 > 211 > out (Nd,a 
Dealer nquiros invited 39039 > 244 © <244> 39039 > 244 = <244> 
39040 > 201 > ret 39040 > 201 > ret 


16 


AERCO FD-68 DISK SYSTEM 


AERCO MERGE FUNCTION 


by Larry Zunk 


Larry Zunk of Zunk Custom Electronica (4800 East 


Cedar lane, Norman, Oklahoma 


73071), 


shares a few 


routines for the AERCO FD-68 disk drive system. Larry 
has programmed a powerful software package for the 


FD-68 called “CADZ" 


issue, or write to the 


details). 


This is a tip for all Aerco FD-68 users. The 
basic MERGE function has never been available, but a 
simulated merge canbe accomplished. 

Rule #1: line numbers must be consecutive. Rule 
#2; get rid of all variables. Rule #3: is make sure 
there is enough room for both listings. 

It works like thie. In the immediate mode, type: 

CAT “first program.BAS", 

CLEAR 65535 


above 


(watch for review in upcoming 
address for further 


POKE 23635,PEAK 23627 
POKE 23636,PEAK 23628 
CAT “second program. BAS", 
(NOTE: Execution will 


POKE 23635,86 
POKE 23636,104 
LIST 


SUPER DETAILED DISK DIRECTORY 


by Larry Zunk 


The following program listings are for the AERCO 
FD-68 Disk Drive System. I must give credit to Mowgli 
Assor for his user tips in the SEP/OCT '87 issue of 
TDM. His machine code routines are the heart of these 
programs. 

Listing 1 is a 32 column detailed disk direc- 
tory. Listing 2 is a 64 column detailed directory for 
use with the Advanced Video Modes software by BEAVER 
COMPUTER PRODUCTS. Either version can be run in BASIC 
or compiled with the TIMACHINE compiler by NOVELSOFT. 

The directory gives file name, type, length, 
location, auto start line numbers, length of vari- 
ables, active chunks, and tracks allocated for each 
file, Although the information is the same, I prefer 
the 64 column version because everything fits on one 
line and it gives a much cleaner screen display. 

My system is double-sided double-density. so 
some changes to the machine code in the data state- 
ment may be required for other systems. The disk 
directory is on track 0 sectors 2 and 3. The code 
sets the start of the buffer at E290h (58000 decimal) 
and reads track 0 sector 2, then increments the 
buffer address held in the HL register by 512 bytes. 
Then it sets the B register to 3 and reads sector 3, 
The AERCO user manual states that a single-density 
system has 256 bytes per sector and a double-density 
system has 512 bytes per sector (I assume that a 
quad-density system would have 1024 bytes per 
sector). This is what will need to be changed for 
systems other than DD/DD. 


LISTING 1 


10 REM !USR 62000 

28 REM LINT +LEN,LNLOC,UVAR,BUF 
»TYP,LOC,F,E 

3@ REM !LEN P§<=27 

40 REM ! List 

5@ REM | OPEN 

6@ FOR F=59967 TO 59999: READ 
E: POKE_F,E: NEXT f: RANDOMIZE U 
SR_59967. 

70 DATA INT 62,3,211,244,205,6 
6,53,1,2,0,33,144,226,205,56,53, 
1,3,0,33,144.,225,205,56,53,205,1 
30,53,62,1,211,244,201 


80 LET BUF=58032, 

90: LET P: ASDATCHRBINSCRAROL 
ROBUTUAR™ 

108 CLS PRINT INVERSE 1;" FI 
LE LINE# vaRS = NA 


HE TYPE BYTES LOC CHUNK’ 
NUERSE Q)8T 0,21; OVER 1; 


Z 


17 


110 LET LOC=BUF: LET TYP=PEEK L 
OC#3+1: LET LOC=LOC+1: LET E=LOC 
+10 

120 IF PEEK LOC<>® AND LOC<E TH 
EN PRINT CHRS PEEK LOC;: LET LOC 
sLOC+i: GO TO 1280 

HE EF" SOE" SSo. ver ten 
258 GO SUB 300: LET LNLOC=E 
160 GO SUB 300: LET VAR=E 

170 IF TyP=13 THEN LET LEN=6912 
180 PRINT TAB 10; "{PS(TYP TO 
TYP +2) | TAB 15; LEN; TAB 21; 

490 IF TYP=1 AND LNLOC<10000 TH 
EN PRINT “U"j}LNLOC;TAB 27;LEN-UA 


Ri 

200 IF TYP=1@ THEN PRINT LNLOC; 
TAB 27; INT, (VAR/256) -2; 

B10 IF TyP=13 THEN PRINT 16384; 
220 PRINT TAB OQ; "=" 
230 IF LOC<,@ THEN PRINT P 
EEK LOC; LET LoCsLoc+1: GO 
TO 230 

240 POKE 23689,PEEK 2368941: PR 
INT OVER 4; “7 aes 


250 LET BUF=BUF+S2 

258 PRINT TAB @; A 

270 IF PEEK 23589=2 THEN PRINT 
81;AT_1,0; INVERSE 1; HIT E& 
NTER_TO_ CONTINUE 3 INVERSE 
@: PAUSE @: GO TO 190 

230 IF LOC>S8992 THEN STOP 

299 Go TO 110 

30@ LET E=PEEK LOC+256#PEEK (LO 
C#1): LET LOGsLOGs3: RETURN 

310 °REM ! CLOSE tt 

9999 ERASE “S2COLDIR.BAS 
"S2COLDIR.BAS", 


HOVE 


LISTING 2 
1@ REM !USR 50000 
20 REM !INT +LOOP,LNLOC,VARS,L 
EN,LOC,BO .NF 
80 REM !LEN P$¢=27 
4@ REM iT 


1 LIS 
5@ REM ! OPEN & 


Listing Continued Next Page 


(POKE prog, vars) 


stop here, and all you 
will see is the second listing.) Then also 
immediate mode, type: 


in the 


(POKE prog, 26710) 


DATA INT 62,3,211,244,205,6 
1,2,0,33 7/144, 226,205,660, 335 
133,144,228 ,205 66 53,205, 
62,1,241,2da,.201 

59967 TO 59999: READ 
NEXT: f: RANDOMIZE U 


6@ RANDOMIZE USR 61450: POKE 2 
3578 ,21: PRINT #4;CHR$ 3+CHRS 62 


FCHRS @ 

70 LET LOOP=16: LET Loc=58031: 
DIM B(25) 

80_LET P4s"BASDATCHRBINSCRAROL 
ROBUTUAR™ 


90 PRINT AT_0,0; INVERSE 13" F 

ile Name Typ:Bytes+Vars :Line: Aad 

df: Chunks: Tracks tszeezeeeezeeE" | 

INVERSE @ 

100 FOR F=4 To LooP 
: LET B(N) =PEE 


IF binissa T 
HEN PRINT AT fjn-2; CHRS bin) j 


438 NEXT n: LET. VARS=B (1) #341: 
PRINT TAB _10;".";PS (VARS TO VARS 


140 LET LEN=B (12) +2564B(13) 


150 LET LNLO(=B{14) +2564B (15) 
158 LET _VARS=B (16) +2562B (17) 
170 IF B(1)=0 THEN PRINT VARS T 
AB 20; "+"; UBN-VARS;TAB 27; (LNLOC 
AND LNLOC (19838) 5 

180 IF Bii1)=3 OR B(1}=8 THEN PR 
INT LEN; TAB S2iLNLOC;TAB 38: IF 
b(41)=3 THEN PRINT B(17) ~ 

190 IF B(1) =4° THEN PRINT 6912;T 
AB 32; 16354; 

200 PRINT TAB 44}: FOR N=i8 TO 
25: IF B(N)>@ THE! PRINT (BUN) = ¢ 
87 AND BIN) >99)): 
210 NEXT N 

BBO LET Loc=Loc+s2 
230 NEXT _f 


240 PRINT * INVERSE 13" HIT 
TENTER] OR: (FIRE BUTTON] TO 
CONTINUE "; INVERSE @ 


250 IF INKEY$="" AND STICK (2,1 
150 THEN GO TO 250 

250 PRINT CHR$.0;: IF Loop=15 T 
HEN PRINT CHR$_S4CHRS 0;CHRS @: 
POKE 23578,6: STOP 

270 LET LOOP=15: GO TO 90 

268 REM | CLOSE # 

9999 OUT 244,1: ERASE “newdir.ba 
s",: MOVE "“néwdir.bas", 


SYNX 


by Jack Dohany 


SYNX is a 46-byte relocatable MC routine for 
AERCO disk drive system users. It is given into the 
“public domain". SYNX jis short for "Syntax Checker 
Switch". This routine allows you to turn off the 
BASIC syntax checker when writing or editing BASIC 
lines...and to turn it back on. Syntax checking 
during program execution remains in effect. 

Why? Perhaps you may want to write a BASIC pro- 
gram that can be used on a non-AERCO disk system 
(perhaps for ALL disk systems). You may want to write 
a line like this: 

500 SAVE *"TEST": REM for Zebra disk 

Well, you can't write it because it will fail 
syntax checking. But with the syntax checker turned 
off, you can write it. 

SYNX works by changing some locations in the 
BASIC operating system...normally in ROM, but in RAM 
with AERCO disk. A more detailed explanation is 
beyond the scope of this article. 

Assuming you have the code on disk or tape as 
.BIN or CODE file, it can be loaded wherever there's 
no conflict with other software. Let us say you want 
to load it at Loc 64000: CAT "SYNX.bin",64000 or LOAD 
“SYNX" CODE 64000 will do it. 

To SAVE the code: MOVE “SYNX.bin",64000,46 or 
SAVE “SYNX" CODE 64000,46 

To use SYNX (assuming the code is at 64000): 

RANDOMIZE USER 64000 turns the syntax checker 
OFF, RANDOMIZE USER 64002 turns the syntax checker 
back ON. 


Here is the SYNX code as a decimal listing, 
ready to be POKEd into memory however you wish: 


64200 24 64920 24 69043 
64001 27 64021 221 64041 243 
64002 24 64022 197 6442 237 
64003 18 64923 225 64043 176 
eaea4 oo 64024 1 64944 251 
64005 64025 11 64045 201 
65005 @ 64026 
64097 253 64027 24 
64008 54 64028 5 
69007 oO 64029 197 
64018 255 64930 255 
e4a11  @ 64@31 1 
64012 @ 640324 
64013 205 64033. 0 
64014 13 640549 
GAG15 1 25, 64835 17 
64016 253 64035 76 
£8017. 55% 64037 14 
oaaie = 8 64038 (1 
64019 255 64es9 9 


Of course, if you get a single number wrong, the 
computer is likely to crash when you attempt to use 
SYNX. So it is a good idea to SAVE before you test it 
out. 


TIMACHINE ON AERCO DISK © 


by Carl Green 


Here is a hint for putting TIMACHINE (Novelsoft) 
on the AERCO disk drive system. I found the FD-68 
does not like: 

1) equations 

2) VAL ” i 

3) more than one period (.) 

4) scientific notations (eg: 6e4) 
in the CAT and MOVE statements. Try the following for 
TIMACHINE: 

1) LOAD the whole program from tape. 

2) Move the cursor to the right of the quotation 
marks. 

3) DELETE the quotation marks 

4) Press STOP once, then ENTER twice. 

5) Change line 8070 to read: 


8070 PRINT AT 19,0: MOVE "TSTIME 
+BAS", 9997s MOVE "TSTMLGO.BIN",6 


0614,4922: MOVE "TSSETUP.BIN",60 
099283: MOVE “TSTIME2. BIN", 26688 
, 


6) Change line 9997 to read: 


9997 CLEAR 60613: INK 6: PAPER 
+ BORDER 6: CLS _: PRINT AT 19,02 
CAT “TSTMLGO.BIN";: RANDOMIZE U 
SR 60614: INK’6: PRINT AT 19,0: 
CAT "TSSETUP.BIN",: RANDOM aan 

IN", 


& 
fe} 


I 
458: LET X=USR 60000: PRINT 
19,0: INK 6: CAT “TSTIME2.B 


7) OUT 244,1 

8) GOTO 8000 

9) Put formatted disk in. 

10) At the “BACK UP?" option, press " 

TIMACHINE should now be on disk with the backup 
option operational. 


LARKEN 2068 DISK DRIVE SYSTEM 


CASSETTE TO LARKEN DISK 


by Gaylen W. 


From the time I first bought my Timex Sinclair 
1000 for a close-out price of $29.95 (around 1982), I 
have always dreamed of the day when I could have a 
“complete” computer system, 

I moved one step closer with the purchase of a 


used TS2068 in November of 1966. But I was still 
stuck with using cassette tapes. 7 
Next I moved up to AAJ "Nicrodrives (for my 


7S2068). It was so much faster and easier to us 
Over the next few weeks I spent a lot of time con- 
verting all of my cassette software to the A&J. I was 
happy with the A&J for almost six months...maybe even 
a little longer. 

Then one day I was over at a friend's home and 
saw how nice his computer worked with a disk drive 
system. Now that would really be something to have a 
disk system for my hard-working Timex Sinclair. But, 
it was just too expensive to add one to my computer 


system. 

Then along came Mr. Larry Kenny of LARKEN 
ELECTRONICS, and his floppy disk drive system for the 
TS2068. The cost was low enough to give it a try. Now 
about a year later, my present system includes the 
used 2068, a Larken disk drive system, a dual Amdek 
Amdisk III, one Quad 5 1/4" drive, an RX-80 Epson 
printer, an Aerco printer interface, a 152040 
printer, a 2050 modem, a green screen monitor, and 
lots of software. If I had the money that I have 
spent on this system over the last six years, I could 
buy a "basic" PC compatible, with NO software or 
peripheral hardware. I'm going to stick with my 
Sinclair. 

Now that you know a little of the history of my 
hardware system, maybe I can help you convert 
cassette (or A&J Micro Drive cartridge) software to 
the Larken Disk Drive system. During this last year, 
I have, with the help and advise of some fellow 
Sinclair users, converted the following software to 


the Larken: 

Tasword II, Pro/File 2068, Pro/File +5, VuFile, 
VuCalc, Timemachine, Pixel Print, Zeus, Loader V, Jet 
Set Willy, Voice Chess, Greeting Card Designer, 


Banner Designer, Personal Accountant, Kruncher, pro- 
grams on the original tape supplied with the 2068, 
and many other pieces of software taken froma 
variety of sources. 

Changing all of this software to the Larken DOS 
(Disk Operating System) has one thing in common: the 
changes made in each program is a modification of the 
BASIC save and load commands, to save the program, to 
load and save code, to load and save data strings, to 
load and save screen strings. Refer to the Larken 
operations manual for instructions on how the 
“RANDOMIZE USR 100" is used before each load or save 
command in your BASIC program. The following listing 
is an example of how these changes were made in 
TASWORD II (2068 word processor): 


15 RANDOMIZE USR 100: OPEN #4, 
“dd": PORE VAL “23e@9", VAL "2" 
CLEAR VAL "33279": GO SUB_UAL “4 
G03": BORDER VAL “2": PRPER UAL 
"a": INK UAL "9": PRINT 84: LOAD 
"TWACt"CODE : CLS : LET ISR_U 
aL "S9asi"; co To vAL "10" 

25 GO SUB VAL "4000": PRINT AT 
VAL "2" UAL “Ovi vprint text fil 
e", TAB VAL "31 

23 PRINT : PRINT “save text fi 
Le" TRB UAL "Sai; 

@@ PRINT : PRINT “load text fi 
Le“; TAB VAL "34"; 

35 PRINT : PRINT “merge text F 
ile"; TAB VAL "31"3 "mn" 

40 PRINT © PRINT "return to te 
xt File" TAB VAL "31"; ty" 

45 PRINT : PRINT “define graph 


icsvprinter";TAB VAL "S21"; "3 


19 


Bench 

5@ PRINT : PRINT “save tasword 
“VTRE UAL "3an5et" 

55 PRINT : PRINT “into Basic"; 
TAB VAL 31"; "b" 

60 PRINT : PRINT “DIRECTORY ;T 
AB_Sii"d" 

78 PRINT AT 20" ,UAL "a"5” 


* THEN 
* THEN 

THEN 

THEN 
* THEN 
"109" THEN 
"103" THEN 
"98" 


LET 
LET 
Ler 
LET 
LET 
LET 


LeT 


isv 
THEN LET i=UA 
“100" THEN GO TO U 


GO SUB 
Ey ia 


Bt" LINE VAL 
710 PRINT #4: 
VAL "5a7a4" 54 
naee 
LET isVAL "15". 60 SUB VAL 
GO SUB YAL "9gaa": PRINT 
SAVE ag+".Ot" CODE b.g: OLS 
SQ LET bSFt VAL "s2216"): GO 
SUB VAL "9990": PRINT #4: LOAD 
“CODE (a+b), (iFN PIVAL "5 
Pvt nce) BUAL “ed" ai: GD 
9200 INPUT “Dri 
ibe: PRINT #4: 
gs78 oLS 
INT #4: CAT 
60 TO UAL "25" 
Line 15 sets up the PRINT #4 command that will 


be used before each save and load command in the pro- 
gram. Line 60 adds a disk directory choice to the 
tasword menu. Line 175 is the IF..THEN statement used 
by the menu to call Line 9970. Line 9970 calls the GO 
SUB Line 9900 which gives you a choice of which drive 
you want and then returns to do the catalog of that 
chosen drive. After the directory is done, the pro- 
gram will return to the main menu. Please note that 
the drive selection GO SUB Line 9900 is also called 
by both the load and save lines of the ‘program. Lines 
700-710 are the save lines that will save Tasword II 
to disk. Line 1030 is the save line that will save 
all files (letters or documenta) to disk. Line 2030 
ig the load line that will load your chosen file from 
the disk to Tasword. 

I know that this is a brief description of how 
these lines are changed. But there is one area of 
concern that has to be dealt with in making these 
changes. That area is the memory spaces for the basic 
program. You will note in Line 15, that RAMTOP is 
lowered to 33279, and then the Tasword code is loaded 
above that. The basic program cannot be written above 
that address. If you change that address...well, 
that's another complete article. 

There are a number of ways that the original 
basic program can be changed to free up memory space 
to allow for these changes. If you are going to 
dedicate the program to disk use only, you can go in 
and DELETE the cassette VERIFY routines. The Larken 
system uses the VERIFY command as a “disk check” 
command (refer to the Larken manual for further 
details). You can also change or eliminate any 
prompts that are displayed on the screen concerning 
the loading, saving, or verifying of cassette tapes. 


One more way to free up program memory space is 
the use of the KRUNCHER program (written by Syd 
Wyncoop and available from RMG Enterprises) . 
will “modify” the basic listing. It pl 
numbers found in the listing inside VAL 
ments, and replaces the number 0 with NOT PI, 1 
SGN PI, and 3 with INT PI. These tokens have the same 
value as the number. There is one problem in using 
the KRUNCHER program: it does not change negative 
numbers correctly. A -250 will be changed to VAL 
"-250", which causes a syntax error in the basic 
Program. The way to correct this is, before you 
“krunch" the program, list it out and put any 
Negative number inside brackets (-250 will be 
~(250)). The KRUNCHER program will now convert this 
number correctly. 

There are some other problems encountered when 
converting cassette software to disk. One of the 
first ones you may come across, is the program (or 
file) name. Cassette allows a name to be ten char- 
acters long. Larken allows up to six characters plus 
an “extension”. You can see how the program (file) 
name and extension are used, by looking at the load 
and save lines of the Tasword listing example (please 
refer to the Larken manual for rules concerning the 
use of extensions). Some basic programs include a 
“test statement". testing for the cassette ten 
character name length. These statements will have to 
be changed to conform to the Larken file name length. 

I hope that I have been able to help some of 
you with the change from cassette to Larken disk. If 
any of you have suggestions on how these changes can 
be made easier than I have listed, please feel free 


to contact me. I'm Gaylen W. Bench, and my address 
is: 900 N.W. Mawcrest Dr. #110, Gresham, Oregon 


97030. You can also contact me via CompuServe (ID+ 
73720,755), or on the RMG BBS (503-656-8072; settings 
8/1/N). I will gladly pass any updated information to 
TDM readers in a future article. 

The information provided in this article is a 
long way from being complete on how to convert every 
program to disk. If any of you would like assistance 
in making these changes, please contact me, and we 
will work out some arrangement on how to get the job 
done. 

One more important find. If any of you have 
attempted to put a choice in your basic program to 
switch between the Timex 2040 printer and a full-size 
printer, you will run into a problem using the Lerken 
system. For some reason the Larken system over-writes 
the 2068's print buffer. You can find out if you have 
this problem by doing an LLIST to the 2040 printer. 
If the first thing printed is garbage, then you have 
the problem. I tried for about a year to find a 
solution. Whenever I would use the PRO/FILE +5 pro- 
gram, I could not switch back to the 2040 printer 
after using the full-size printer...the program would 
“crash". The correction to this problem is so simple! 
When you change back to the 2040, the first thing you 
need to do is a simple “LPRINT". This clears the 2068 
print buffer and now you can print with the 2040 
without any trouble. 


PASCAL DISK HANDLER FOR THE LARKEN 


Article by David Solly 


Programs by David Solly and Larry Kenny 


Access to the Larken Disk Drive System from within 


@ compiled HiSoft(TM) Pascal program is now 
possible thanks to the procedures developed by 
David Solly and Larry Kenny. This article 


demonstrates how to install these procedures and 
gives a practical demonstration on how they may be 
used within a simple directory program. The 
procedures described in this article are valid for 


both the Timex Sinclair 2068 


versions of HiSoft Pascal, 


I have owned HiSoft Pascal, (henceforth Pascal), for the 
Timex Sinclair 2068 and the ZX Spectrum for a number of 
years now but the drawback with Pascal, as it is implemented 
on Sinclair computers, has been that there was no 

access a DOS from within a compiled progr: It 
ridiculous to put the effort into creating programs 
ran like machine code once the source code was debugged, 
compiled and transfered to disk only to be forced to go back 
to a plodding tape operating system, (henceforth TOS), when 
I needed to save or enter data from within the compiled 
program. Finally I sat down and did some serious study of 
the problem, some d scratching, some question asking 
‘especially of Larry Kenny, who is the creator of the Larken 
DOS, and Ken Schienan) and some experimentation. The result 


of this is the creation of the Pascal disk handler described 
below. 


The needs of LKDOS are the same as for the TOS. You are 
required to provide the name of your program, the starting 
address of the program and the lenght of the program. This 
is exactly what happens when you type within Basic: 


SAVE “Myprogram™ CODE start, length. 


Pascal also passes the sane information to the TOS when it 
saves out a variable through the use of the procedure: 


TOUT ('Myprogram’, ADDR (the name of the 
aaved), SIZE (the name of the v. ble being 


variable 
ved) 5 


being 


20 


nd the ZX Spectrum 


The crux of the problem is that, although both languages 
generate identical information, LKDOS can extract it only 
from within the Basic environment. Therefore, additional 
mming is need in order to transfer the save or load 
ters to LKDOS from within the Pascal environment. 


The first steps towards transfering the required information 


form Pascal to LKDOS are to store _th nam the tart 
address, and the length of the variajble to be saved or 
loa in a safe area of the RAM. This is a simple matter 
thanks to the very versatile POKE() function in Pascal. 
Unlike the POKE command available in Basic, this Pascal 
function can DOKE a number or POKE the contents of a whole 
character array starting at a given address The fir: 
fifteen bytes of the printer buffer pro to be the safest 
area to which all the transfers can be achieved with the 
following lines: 
POKE (23300, 'Myprogram'); 
POKE (23311, ADDR (name of variable)); 
and 
POKE (23313, SIZE (name of variable)); 
these lines in a modified form in the 
program within the procedures GETNAME, 


DISKSAVE and DISKLOAD. 


Upon completion of these steps the next step is to copy the 
information from it: ep. in the RAM to th 
appropriate routin LKDOS, Again to HiSoft includes 
within their implementation of Pascal the procedure INLINE() 
wich allows us to embed 280 machine code within a Pascal 
procedure to accomplish our enda. 


The following is a disassembly of the machine code 
the procedure DOUT 


used in 


00010 NAME EQU 23300 

00020 PROGNM EQU 8226 

00030 TEMP4 EQU 8243 

00040 TEMP2 EQU 8241 

00050 NMIF EQU 8194 

00060 ADDR EQU 23311 

00070 SIZE EQU 23313 

00080 SVI EQU 0204 

00090 sv2 EQU 0207 

00100 ORG 40000 

00110 DI Disable interrupt 
00120 CALL 98 Turn on LKDOS cartridge 
00130 LD HL, NAME Transfer file name 
00140 LD DE,PROGNM to progna 

00150 LD BC,09 

00160 MOVE LD A, (HL) Loop to catch any 
00170 a) occurance of CHR® 0 
00180 JR NZ,NZERO 

00190 LD (HL) ,32 3 & replace with a space 
00200 NZERO LDI 

00210 LD A,B 

00220 ORC 

00230 JR NZ, HOVE 

00240 LD A,1t 

00250 LD (NMIF),A 

00260 CALL SV1 ; Save nane 

00270 LD HL, (ADDR) Retrieve start address 
00280 LD (TEMP4) , HL Set start addr. 

00290 LD HL, (SIZE) Retrieve length of save 
00300 LD (TEMP2) , HL Set length of save 
00310 CALL SV2 Second save data 

00320 LD A, (100) Exit cartridge 

00330 EL Enable interrupt 


(Program provided by Larry Kenny of 
Navan, Ontario, Canada K4B 1H9, Tel: 
(Listing made using Zeus Assembler) 


Larken Electronics, #2 
(613) -835-2680) 


The procedure DIN contains the same code except that SV1 and 


SV2 are replaced with LD1 EQU 198 and LD2 EQU 201. The MOVE 
loop insures that the file name is padded out with the 
correct number of spaces so that it totals nine characters 


and spaces otherwise the file name may 
to reload. 


e corrupted and fail 


The following listing demonstrates how all the procedures 
described above are used within a complete Pascal program. 
The object of the program is to create a simple telephone 
directory which will allow you to store ten names and 
numbers, read the information stored in the directory, and 
read and write the information stored in the directory to 
disk using the Larken LKDOS. There is also a summation of 
this article contained in the procedure SONGANDDANCE. 


Pascal source code listing 


10 {PROGRAM BY: ? 
20 (DAVID SOLLY > 
30 (1402-1545 ALTA VISTA DRIVE) 
40 (OTTAWA, ONTARTO d 
50 {CANADA KG 3P4 ? 
60 (TEL: (613)-731-2120 ? 
70 

80 

90 {THIS PORGRAM IS FOR ? 
100 (DEMONSTRATING HOW THE ) 


110 
120 
130 
140 
150 
160 
170 
180 
190 
200 


(LARKEN DISK DRIVE MAY BE) 
{ACCESSED FOR STORING AND ) 
(RETRIEVING DATA WITHIN A} 
{HISOFT(TM) PASCAL PROGRAM. } 
{THE PROCEDURES DESCRIBED } 
(IN THIS PROGRAM ARE VALID } 
{FOR BOTH THE 2X SPECTRUM } 
(AND THE TIMEX SINCLAIR ) 
{2068 VERSIONS OF HISOFT 
{PASCL. ) 


21 


210 
220 
230 
240 
250 
260 
270 
280 
290 
300 
310 


320 ~ 


330 
340 
350 
360 
370 
380 
390 
400 
410 
420 
430 
440 
450 
460 
470 
480 
490 
500 
510 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
630 
640 
650 
660 
670 
680 
690 
700 
710 
720 
730 
740 
750 
160 
770 
780 
790 
800 
810 
820 
830 
840 
850 
860 
870 
880 
890 
900 
910 
920 
930 
940 
950 
960 
970 
980 
990 
1000 
1010 
1020 
1030 
1040 
1050 
1060 


PROGRAM LARKENDEMO; 


CONST 
LENGTH = 10; 


PN = 23300; {ADDRESS WHERE THE NAME FOR THE SAVE/LOAD) 
{ROUTINES IS STORED) 

PB = 23311; (CONTAINS THE ADDRESS WHERE THE DATA BEGINS) 

PS = 23313; {CONTAINS THE NUMBER OF BYTES USED BY THE DATA) 

CAPSLOCK = 23658; (ADDRESS OF THE CAP SHIFT LOCK CONTROL) 


oN 


= 8; (SWITCHES CAPSLOCK ON) 


OFF = 0; (SWITCHES CAPSLOCK OFF} 


TYPE 
ENTRY = RECORD 


NAME : ARRAY (1..10] OF CHAR; 


NUMBER : ARRAY Ci. 


END; 


VAR 


10] OF CHAR; 


DIRECTORY : ARRAY C1..LENGTH) OF ENTRY; 


I: INTEGER; 
FINISHED : BOOLEAN; 
ANS + CHAR 


PROCEDURE DOUT; (INVOKES LKDOS WRITE) 


BEGIN 
INLINE (#3, 
#22, 
#20, 
#20, 
HCC, 
#2, 
#00, 


wo, 
#20, 
#02, 
43, 
#00, 
mi, 
#34, 


#62, 
#1, 
#6, 
WE, 
ma, 
#58, 
#64, 
END; 


#00, 
#09, 
#0, 
#08, 
40F, 
#22, 
#00, 


#21, #04, 
#00, #7E, 
#ED, HAO, 
#32, #02, 
45B, #22, 
#31, #20, 
4B); 


#53, 
aEE, 
#78, 
#20, 
#33, 
#cD, 


win, 
#00, 
BL, 
#CD, 
#20, 
aCF, 


PROCEDURE DIN; (INVOKES LKDOS READ) 


BEGIN 
INLINE (4F3, ACD, 
#22, #20, 
#20, #02, 
#20, #F3, 
#06, #00, 
#24, #11, 
#00, HSA, 


62, 
#01, 
436, 
WE, 
#24, 
#58, 
64, 
END; 


PROCEDURE GETNAME; 
VAR 


#00, 
#09, 
#20, 
#08, 
#OF, 
#22, 
#00, 


#21, #04, 
400, #7E, 
ED, HAO, 
#32, #02, 
458, #22, 
#31, #20, 
4B); 


#58, 
aE, 
#78, 
#20, #CD, 
#33, #20, 
#cD, #9, 


#1, 
#00, 
#B1, 


PROGNM : ARRAY (1..9] OF CHAR; 


BEGIN 
WRITELN; 
POKE (CAPSLOCK, OFF); 


WRITELN ("NAME FOR DISK OPERATION? *) 


READLN (PROGNH) ; 


CHARACTERS MAXIMUM: 


POKE (PN, PROGNM); {STORES THE NAME IN RAM} 


END; 


PROCEDURE DISKSAVE; 
BEGIN 

PAGE; 

WRITELN; 


WRITELN ('LARKEN DISK SAVE ROUTINE’); 


POKE (PB, ADDR (DIRECTORY) ); 


POKE (PS, SIZE (DIRECTORY) ); 
DOUT; 
WRITELN (*SAVED!"); 


{START ADDRESS FROM WHERE THE) 
(DATA IS TO BE SAVED} 
(NUMBER OF DATA BYTES TO SAVE) 


FOR I := 1 TO 100 DO {PAUSE LOOP) 


END; 


1070 
1080 
1090 
1100 
1110 
1120 
1130 
1140 
1150 
1160 
1170 
1180 
1190 
1200 
1210 
1220 
1230 
1240 
1250 
1260 
1270 
1280 
1290 
1300 
1310 
1320 
1330 
1340 
1350 
1360 
1370 
1380 
1390 
1400 
1410 
1420 
1430 
1440 
1450 
1460 
1470 


1480 
1490 
1500 
1510 
1520 
1530 
1540 
1550 
1560 
1570 
1580 
1590 
1600 
1610 
1620 
1630 
1640 
1650 
1660 
1670 
1680 
1690 
1700 
1710 
1720 
1730 
1740 
1750 
1760 
1770 
1780 
1790 
1800 
1810 
1820 
1830 
1840 
1850 
1860 
1870 
1880 
1890 
1900 
1910 
1920 
1930 
1940 


PROCEDURE DISKLOAD; 
BEGIN 
PAGE; 
WRITELN; 
WRITELN (*LARKEN DISK LOAD ROUTINE’); 
WRITELN; 
GETNAME; 
POKE (PB, ADDR (DIRECTORY)); {START ADDRESS AT WHICH THE) 
{DATA IS TO BE LOADED) 
POKE (PS, SIZE (DIRECTORY)); (NUMBER OF DATA BYTES TO LOAD) 
DIN; 
WRITELN (*LOADED!"); 
FOR I':= 1 TO 100 DO (PAUSE LOOP) 
END; 


PROCEDURE FILLDIRECTORY; 
BEGIN 
PAGE; 
POKE (CAPSLOCK, OFF); 
FOR I := 1 TO LENGTH DO 
BEGIN 
WITH DIRECTORY [13 DO 
BEGIN 
WRITELN ("ENTRY NO. 
WRITELN; 
WRITE ("NAME PLEASE (10 CHARS) '); 
READLN; 
READ (NAME); 
WRITE ("NUMBER PLEASE (10 CHARS) '); 
READLN; 
READ (NUMBER) 
END 
END; 
WRITELN ("DIRECTORY FULL *); 
WRITELN; 
WRITELN ("HIT ANY KEY TO CONTINUE’); 
READLN 
END; 


", 1, ' OF ', LENGTH); 


PROCEDURE READDIRECTORY; 
BEGIN 
PAGE; 
POKE (CAPSLOCK, OFF); 
FOR I z= 1 TO LENGTH DO 
BEGIN 
WITH DIRECTORY (12 DO 
BEGIN 
WRITELN (NAME, * 
WRITELN; 
END 
END; 
WRITELN (‘END OF DIRECTORY’); 
WRITELN CHIT ANY KEY TO CONTINUE"); 
READLN 
END; 


+, NUMBER); 


PROCEDURE SONGANDDANCE; 
BEGIN 

PAGE; 
WRITELN ('Larken Disk Access Routine’); 
WRITELN (for!) ; 
WRITELN (’HiSoft (TM) Pascal’); 
WRITELN ('for the’) 
WRITELN ('2X Spectru 
WRITELN (’and the’); 
WRITELN ('Tinex Sinclair 2068"); 
WRITELN; 
WRITELN ("by"); 
WRITELN (*David Solly’); 
WRITELN (‘and’); 
WRITELN (*Larry Kenny’); 
WRITELN; 
WRITELN ("Hit any key to continue’); 
READLN; 
PAGE; 
WRITELN (Many 2X Spectrum and TS 2068°); 
WRITELN ('programers have long wanted to’); 
WRITELN ('do serious programing in othe 
WRITELN ("languages than the resident’) 
WRITELN ('Sinclair Basic. Although such’); 
WRITELN ("Languages as Forth, Logo, C, 
WRITELN (*Prolog and Pascal have long be: 
WRITELN (‘available to Sinclair users one 
WRITELN (of the main drawbacks for'); 


Vy 


1950 WRITELN (serious prograsing in these’); 
1960 WRITELN ("languages has been the lack of’ 
1970 WRITELN (disk 1/0 routines. This prograa’ 
1980 WRITELN (’will demonstrate how the Larken’ 
1990 WRITELN (‘disk drive system may be’); 

2000 © WRITELN (‘accessed for storing and ') 

2010 WRITELN ("retrieving data within a‘) 

2020 © WRITELN (HISoft(TM) Pascal program. The’); 
2030 © WRITELN ("procedures described in this '); 
2080 © WRITELN; 

2050 © WRITELN (Hit any key to continue’) 

2060 © READLN; 

2070 © PAGE; 

2080 © WRITELN (*program are valid for both the’) 
2090 © WRITELN ('2X Spectrum and the Timex’? 

2100 = WRITELN (’Sinclair 2068") 

2110 WRITELN; 

2120 WRITELN ('The tvo disk drive procedures") 
2130 WRITELN ("are found in the procedures DIN 
2140 WRITELN ("and DOUT. A third procedure,") 
2150 WRITELN ('called GETNAME, supplies the’) 
2160 - WRITELN (above procedures with a name f 
2170 WRITELN (‘storing or retrieving from the 
2180 WRITELN ('disk. All these procedures work’) 
2190 WRITELW (in conjunction with the resident") 
2200 © WRITELN ("procedures ADDR(), SIZE(), and’) 
2210 0 WRITELN (*POKE()"); 

22200 WRITELN; 

2230 © WRITELN (The authors hope that these’); 
2240 © WRITELN ("procedures will stimulate Pascal’) 
2250 WRITELN (‘programing for the ZX Spectrua’) 
2260 © WRITELN; 

2270 © WRITELN ("Hit any key to continue 

2280 © READLN; 

2290 PAGE; 

2300 WRITELN (‘and the Timex Sinclair 2068 and”) 
2310 WRITELN ("encourage other Sinclairests to’) 
2320 © WRITELN (write disk routines for the’) 
2330 WRITELN ("other languages mentioned’ 

2340° | WRITELN ('abov 


COPY A SCREENS IN COLOR? YES 
Now a T/S 2068 artist can copy to paper his/her favorite 
screen$ ...... IN FULL COLOR!! All eight Timex paper & ink 
colors are accurately reproduced for a full 24 line X 32 
column graphics screen duap. The user friendly software 
provides for two copy sizes in color or in black & white. 


HARDWARE REQU NTS? - An OKIMATE 
20 printer w/ COMMODORE PLUG ’n PRINT CARTRIDGE are inter- 
faced to a 2068 via a simple COMMODORE serial port eau- 
lator circuit; (The same circuit also interfaces a 2068 to 
a COMMODORE 1520 4-color printerdplotter.) The I/F hard- 
ware sells for $14.95 (bareboard only), $20.95 (complete 
kit), and $30.95 (asseabled & tested) - all postpaid. 


OTHER SOFTWARE? ~ The OKIMATE 20 is a aany 
featured 80/136 col. printer, able to print in draft, NLQ, 
italics, reverse (white on black), underline, super/sub- 
scripts, six char. sizes, and do 7 or 24 pin color or b/w 
graphics. A “patch kit” software program allows CMScript 
versions 5/5.2 to print to the OKINATE 20. A hi-mem driver 
code block is also available for LPRINT/LLISTing ta the 
OKIMATE 20 from BASIC, All software is priced at $8.95 
postpaid each and coaes with coaplete user notes, 


Send LSASE for additional information and order fore to: 
ooo John McMichael oe 
@¢¢ = #1710 Palmer Drive ¢¢¢ 
¢¢¢ Laramie, WY 82070 ¢¢¢ 


2350 WRITELN; 


2360 WRITELN (David Solly'); 

2370 WRITELN ('Larry Kenny’); 

2380 WRITELN; 

2390 WRITELN; 

2400 WRITELN ("Hit any key to continue’); 
2410 READLW 

2420 END; 

2430 

2440 

2450 BEGIN (BODY OF THE PROGRAM) 

2460 REPEAT 

2470 PAGE; 

2480 POKE (CAPSLOCK, ON); 

2490 FINISHED += FALSE; 

2500 WRITELN; 

2510 WRITELN; 

2520 WRITELN (/MENU’); 

2530 WRITELN; 

2540 WRITELN (*SELECT ONE OF THE FOLLOWING"); 
2550 WRITELN ("OPTIONS '); 

2560 WRITELN; 

2570 WRITELN; 

2580 WRITELN (1) READ THE INTRODUCTION"); 
2590 WRITELN (72) CREATE DATA‘); 

2600 WRITELN (13) READ DATA’); 

2610 WRITELN ('4) SAVE DATE TO DISK’); 
2620 WRITELN ('5) LOAD DATA FROM DISK"); 
2630 WRITELN ('6) EXIT THE PROGAM’); 
2640 WRITELN; 

2650 WRITELN; 

2660 WRITE ("MAKE YOUR SELECTION '); 
2670 READLN; 

2680 READ (ANS); 

2690 

2700 

2710 CASE ANS OF 

2720 "1? ¢ SONGANDDANCE: 

2730 *2* 3 FILLDIRECTORY; 

2740 "3" 2 READDIRECTORY; 

2750 "4: DISKSAVE; 

2760 "5" : DISKLOAD; 

2770 "6? : FINISHED := TRUE 

2780 END; 

2790 

2800 


2810 UNTIL FINISHED = TRUE; 

2820 th 

2830 

2840 == (FINALE? 

2850 PAGE; 

2860 © WRITELN; 

28700 WRITELN; 

2880 WRITELN (‘END OF DEMONSTRATION"); 

2890 © WRITELN; 

2900 WRITELN 

2910 EXD. 
The Pascal disk handler described in this article and 
program works only within a compiled Pascal program and, 
regretfull , can not be used to save Pascal source code. The 
procedures DIN, DOUT, and GETNAME are completely modular. 
They may be copied directly from this program into the 
appropriate section of any Pascal program you care to write 
which requires access to LKDOS. The procedures DISKSAVE and 
DISKLOAD may also be used but remember to change the nase 
within the ntheses of ADDR() and SIZE() to the name of 
the variable within your program that you wish to save or 
load. The ".C” extension required by data file saves within 
Basic when using LKDOS is not required by the Pascal disk 
handler, however, it may be good practice to use the 


extension ".P” to indicate that the data that has been saved 
is intended for a Pascal progr rather than a Basic 
program. All the LKDOS error codes are operational and will 
stop your program without crashing providing that the 
compiled code is accessed through a Basic loader progran, 
that a PRINT USR is used rather than RANDOMIZE USR and that 


there is at least one line of Basic after the USR call. 
Example: 

10 REM TYPICAL COMPILED PASCAL PROGRAM LOADER 

20 BORDER 0: PAPER 0: INK 7: CLS 

30 PRINT #4: LOAD "MYPROG.C1” CODE 27000 

40 CLS: PRINT USR 27000 

50 STOP 
9000 REM SAVE LOADER TO DISK 
9010 PRINT #4: SAVE “LOADER.B1” LINE 1 
On behalf of Larry and myself I hope that this Pascal disk 
handler will prove to be useful to all who wish to do 


serious programming in Pascal which requires disk access. 


ZEBRA/TIMEX FDD DISK SYSTEM 


MACHINE CODE TRACK 


READER 


by Mike Finn 
E000 00 Storage space for drive # 
£001 00 Storage space for track # 


In order to write more advanced programs for the 
Zebra FDD disk drive system, we need to know more 
about it's operating system. To write disk utilities 
we need to be able to see exactly what is on disk 
without a basic program using basic TOS (Timex Oper 
ating System) commands as intermediary. Since TOS is 
stored on the first four tracks of the disk and 
downloaded to controller RAM, we need disk reading 
and writing utilities to make any desired changes to 
TOS, or to develop utilities such as a program which 
would recover disk data after accidental erasure. 

The following machine code program will read all 
the sectors of any given track on the disk and store 
the 4K bytes of disk track data in Home RAM at 7000 
hex for access by a monitor disassembler machine 
code program. The track reader code resides at E000 
to E050 hex. I have used both Zeus Monitor and HOT-Z 
AROS with it. In fact, I have used HOT-Z AROS in all 
3 banks: home, dock, and exrom with 32K non-volatile 
memory board in the dock cartridge slot with this 
track reader program. The code can be readily modi- 
fied to be used at some other location if you are 
using some other disassembler. 


£002 210070 LD HL, 7000 Beginning ef heme ram 
storage for disk track 
contents 

E005 3AO1E0 LD A, (E001) rs 

£008 57 LD D,A D contains track # 

E009 3A00EO LD A, (E000) 

EQOC 4F LD C,A C contains drive unit # 

EOOD FDES PUSH IY Page in ZEBRA interface 

EOOF FD210000 LD I¥,0000 ron/ram 

E013 CDO600 CALL 0008 

E016 FDE1 POP IY 

E018 1EOO LD £E,00 E will hold sector # 

EO1A 3E1B LD A,1B Disk command to read sector 
contained in E of track in 
D of drive in C 

EOC 320021 LD (2100),A Command buffer 

EOIF CS PUSH BC Save request parameters 

£020 DS PUSH DE 

£021 ES PUSH HL Save current home ram 
download address 

E022 cDoseé CALL 0608 Calls command sending 
routine 

E025 cD2606 CALL 0626 This routine controls for 
reply from disk 

£028 3A0221 LD A,(2102) ‘This: system variable holds 


23 


TOS error code 


E02B A7 AND A Test for error. 

E02C 0600 LD B, 00 If an error occurred return 

EO2E 4F LD C,A to basic with error 

E02F 201¢ JR_NZ,E04D reason in BC 

E031 El POP HL Restore home ram address and 

£032 110020 LD DE,2000 download from ZEBRA ran 

£035 EB EX DE, HL buffer to home 

£036 010001 LD BC, 0100 

E039 EDBO LDIR 

E03B EB EX DE, HL 

EO3c Di POP DE Restore sector/track 
parameter 

E03D 7B LD A,E Pick up next data sector of 

EO3E C607 ADD A, 07 track 

E040 E60F AND OF 

E042 SF LD E,A 

E043 C1 POP BC Restore drive parameter 

E044 20D4 SR NZ,EO1A If all 16 sectors not read 
then loop back for next one 

£046 010000 LD BC, 0000 If all 16 read set error 
report code to 0 

E049 CDO306 CALL 0603 Page out ZEBRA rom/ram 

EO4C C9 RET Return to basic to call up 
either monitor or error 
message 

E04D El POP HL Clear stack and return to 

EO4E El POP HL basic 

EO4F EL POP HL 

E050 18F7 SR E049 


Relative addressing is used as mich as possible 
within the machine code. The only absolute address 
calls are to a jump table in Zebra ROM, as described 
in Appendix F of the user manual, so all versions of 
the FDD should run this code. The only lines that 
need to be changed to relocate thie code for use with 
another monitor/disassembler are lines 3, 4, and 6. 
You will need to change the absolute addresses used 
in those lines to match your memory layout. 

A basic program is used to load the code from 


disk, poke the track and driver parameters, load your 
favorite monitor, run the code, and enter the monitor 
program to view the disk data. In the basic program 


you must replace lines 30 to 38 and 140 to 148 with 
your own monitor/disassembler loads and calls. I use 
one of the following depending on my system 
configuration. 

ZEUS monitor: 


30 LOAD * "ZEUSMON .COD"CODE 

140 IF BC=0 THEN PRINT USR 62137 
HOT-Z AROS: 
Home: 30 LOAD * “HOT-22,5.COD"CODE 

140 IF BC=0 THEN RAND USR 32776 
Dock: 140 IF BC=0 THEN OUT 255,0: OUT 244, 

240: RAND USR 32776 

Exrom: 140 IF BC=0 THEN OUT 255,128: OUT 24 


4,240: RAND USR 32776 


Mostly I keep HOT-Z in Exrom. There are several 
“bugs" in the FDD's initiation routines when dock 
bank cartridges are present. I avoid these conflicts 
by keeping HOT-Z AROS in exrom from 8000 to DFFF hex. 

Once you enter the monitor you shouldn't need to 
return to basic, Parameters at E000 and EQO1 hex can 
be poked using utilities in the monitor program and 
both ZEUS and HOT-Z have code execution routines. For 
ZEUS, I use the DISASSEMBLE command to read code and 
the EDIT command to read data. The EDIT command is 
also used to change parameter values at E000 and 


24 


E001, I use the GOTO command to rerun the code at 
E002. For HOT-Z, the normal read mode can disassemble 
code and the display switch (SS-G) will read data. TI 
can enter the edit mode (SS-A) to input new parameter 
values and use the run command (CSS-RUN) to rerun the 
track reader code. HOT-Z has an advantage over ZEUS 
for reading files containing basic programs. ZEUS 


won't display the characters corresponding to codes 
over 127. 

For those whose monitors de not include an 
assembler. the following loader may be used to enter 
the code. 


1 REN ZEBRA Disk Drive 
Track Reader Utility 
by Mike Finn 
2 REM This utility requires a 
monitor/disassembler 
machine code program 
3 REM Program allows for 
monitor code to occupy 
addresses from 8000 
to DFFF Hex or from 
E051 to FF57 hex 
4 REM E000 to E0SO is reserv- 
ed for track reader m/c 
§ REN 7000 to 7FFF is reserv- 
ed for disk data 
10 CLEAR 28671 
20 LOAD *"TRACKRDR .COD"CODE 
30 REN tt ersreeneserens eee tee 
32 REN 
34 REM Replace th: REM with 
a LOAD * instruction to 
load your favorite mon- 
itor disassembler from 
Disk 
36 REM 
38 REM +t eek EEE EEE EEE 
40 PRINT ‘TAB 5;"DISK REVIEWIN 
G UTILITY" 
SO INPUT "Source Drive (A TO D 
> "yDs 
60 LET D=CODE D$ 
70 IF D>=97 AND D<=100 THEN L 


IF D<O OR D3 T 


GO TO 50 

90 POKE 57344,D 

100 INPUT "Track (0 to 39) ";T 
110 IF T<O OR T?39 THEN GO TO 


120 POKE 57345,T 
130 LET BC=USR'57346 
140 REM steeeee reece 
142 REN 
144 REM Replace this REM with 
IF BC=0 THEN RAND USR 
( monitor address ) 
146 REM 
148 REN sete texeeaaeterceenent 
150 PRINT "ERROR ";BC;"'!, Please 
see user manual," ‘ 


10 REM Machine code loader 

15 RESTORE 

20 FOR I= 57344 TO 57425 

25 READ A: POKE I,A: NEXT T 

30 DATA 000,000,033,000,112,05 
8,001, 224,087,058, 000,224 ,079 

35 DATA 253,229,253,033,000,00 
0,205 ,008,000,253,225 030,000 

40 DATA’ 062,027, 050,000,033,19 
7,213, 229,205 ,008, 006,205,038 

45 DATA 006,058,002 ,033,167,00 
6, 000,079,032 028,225, 017,000 

$0 DATA 032,235 ,001,000,001,23 
7,176,235 ,209,123,198,007,230 

55 DATA 015,095,193,032,212,00 
1, 000,000,205 ,003, 006,201,225 

60 DATA 225,225, 024,247 


"S" AND "Q" KEYS WITH "CAT*" COMMAND 


by Mike Finn 


After reading Ronald Havlen's FDD Express (Oct. i 
+97) newsletter about the problem with stopping the from the data buffer before it has to return to the 


; 4 u et Fa original calling routine. If a directory printout 
scrolling on the CAT* conmand with keys “S" and “Q", contains lees thek-287 Bytes: the We" hey well Tee 
z began to, exper sment),end I econ discovered that stop it in the middle of a transfer since it is only 
these keys will work occasionally. Here is a small 


tested prior to the data printout. 
baby aed which shows that an even larger problem Cah a long directory be contained in just 256 
exists. 


bytes? If you look at the line by line printout of 
First, make sure you have a disk with a large the previous sample directory, you will notice that 
enough directory to require screen scrolling. One 


ore it is mostly empty spaces. The TAB function can 
fast way to do this is to run the following program: easily generate all those spaces in just a few bytes 


of machine code, so pressing "S" may not necessarily 
10 FOR I = 1 To 40 stop even a large directory from scrolling. 
2 poe STRS I Zebra ROM subroutines called by the "S" and "Q" 


rd : key routin 


Now delete that program and enter the following: goo, FyCBOIAE RES 5,(I¥+01) RESET SYSTEM VARIABLE FLAG WHICH 


TRACKS KEYHITS 

10 LET I= 0 Q00E FDCBOLDE SET 3,(I¥+01) | SET CURSOR MODE L 

20 0012 CD3003 CALL 0330 CALL KEYBOARD SCANNER IN 

30 LET re i+i 0015 BoO2 DEFB 020B HOME ROM 

40°G0T0-20 0017 AF XOR A CLEAR FLAG REGISTER 

0018 FDCBO16E BIT 5,(IY+01) TEST WHETHER KEYHIT FOUND 

Run this program and while it is running. press goic ce RET Z IF NOT, RETURN TO CALLING ROUTINE 
and hold the “S" key. Be patient. as this may take a goin 3a085C LD A, (SC08) SYSTEM VARIABLE - LAST KEY 
minute or go. Eventually, the scrolling will freeze 9929 FE61 CP 6h TEST FOR UPPER CASE 
and will remain this way until the "Q" key is o92 pe RET C RETURN IF UPPER CASE 
pressed. Press the “Q" key and the screen will begin 923 EepF AND DF IF LOWER CASE, CONVERT TO 
scrolling again. Immediately press CAPS SHIFT and o98 C9 RET UPPER CASE AND RETURN 
BREAK. Enter as a direct command PRINT I. The first  Qoa¢ Stop ED AyOD CARRIAGE RETURN 
time I tried this it took 33 repetitions of the loop Q998 cp3003 CALL’ 0330 CALL RST’10, IN-HOME ROM 
from lines 20 to 40 before the scrolling stopped. 998 1000 DEFB 0010 TO TRANSMIT CARRIAGE RETURN 
Other times it took as few as four loops. 002D C9 RET 

This shows that the "3" and "Q" keys do work 
gometimes...the problem is why don't they work all of 
the time. 


I've also noticed another problem which may be 
similar to the systems non-response to the key. 
Let's clean up our disk's directory with the 
following program. 


10 FOR I= 1 to 40 
20 LET A$ = STR$ I 


SB: BIG KOU MISS 
emis this program, TOS (Timex Operating HE F ATR? 


will ask you to confirm that you want to 
erase each directory entry. Answer "Y" each time and 
take notice of how long a wait there is between when C ) $¥ 404 Gout? be vind 


you press "Y" and when TOS recognizes that you to know that you too can 


replied. The first six times I answered "Y", TOS 


recognized my input immediately, but the following get in on the specials that were 

two times, there was noticeable lag. on one occasion, offered! We want to send a list of 

T tapped the ae key severe! times before the system our special “AFTER THE FAIR" sale 

na responded. ave not had this problem any i ; 

other Yee so I assume the problem is not a items so that you can get in on 

defective keyboard. (I would like to know if these the savings! All you do i's send a 

things I've written about are peculiar only to my Vegal sized SASE and we'll] send it 

setup or if they are universal among all Zebra FDD out to you with all due haste! 

comners:) AND...1f you would like to order a 
Ihave been working on a disassembly of the ; 

Zebra interface ROM. I believe the I've identified souvenier packet of specials and a 

the subroutine that deals with the use of the "OQ" and program from the show, just send a 

"s". I am still investigating this routine and have check or MO for $3 and we’ll send 

nothing final to report, but on my first glance, I it out! (Packet includes specials 

gee no reason why it shouldn't work consistently. from most attending vendors.) 
My initial review shows that when the Zebra in- For RMG’s BIG 70+ page 

terface ROM sets up a TOS command to the disk 

controller, it then controls a response using a sub- catalog, send $3 7 

routine which the Zebra Disk Drive Technical Manual 

(page 28) calls RESPOSTA. This routine lies between refunded first order. 

0688 hex and O6DB. If TOS wants a write out of text 

in the data buffer (2000 to 20FF hex) or from the 

error message section of the command buffer (210D to RNG ENTERPRISES 

2120), the routine at 03EB to 0423 is galled. It, is 1419 1/2 7TH STREET 

this routine which contains the "3" and "Q" key 

tests. One noteworthy point about this routine is OREGON CITY, OREGON 9704S 


503/655-7484 # NOON-10 TUE-SAT 


that it only tests the "S" key at the beginning of 
the screen printout of text. It can print 256 bytes 


25 


printout routine: 


O3EB ES PUSH HL SAVE HL, ADDRESS OF TEXT TO BE 0418 C8 RET Z IF SO, RETURN TO CALLING ROUTINE 
E PRINTED’ OUT 0419 7E LD A,(HL) PICK UP TEXT BYTE POINTED TO BY 
O3EC 3E02 LD A, 02 OPEN CHANNEL # 2; 0330 IS THE HL 
O3EE CD3003 CALL 0330 1 CBAS ROUTINE USED TO CALL HOME 041A B7 SRA TESTS TO SEE IF WE REACHED END 
O3F1 3012 DEFB 1230 ROM ROUTINES OF DATA MARKER, 00 HEX 
O3F3 3EFF LD A, FF POKE SYSTEM VARIABLE WITH FF FOR 0418 C8 RET 2 IF SO, RETURN TO CALLING ROUTINE 
O3FS 328CSC LD (SC8C),A CONTINUOUS SCROLL OF SCREEN O41C 23 INC HL IF NOT END OF DATA OR END OF 
O3F8 CDOACO CALL OO0A KEYBOARD SCANNER ROUTINE 041D ES PUSH HL BUFFER THEN GET NEXT ADDRESS TO 
O3FB FE53 cP 53 IS IT THE "'S'' KEY? BE PRINTED OUT AND SAVE IT 
O3FD 2007 JR .N2,0406 IF NOT,CONTINUE WITH PRINTOUT 041E CD3003 CALL 0330 USE CBAS TO RUN HOME ROM RST 10 
O3FF CDOAQ0 CALL 000A IF IT IS "'S", KEEP SCANNING 0421 1000 DEFB 0010 FOR TEXT BYTE IN THE A REGISTER 
0402 FES CP Sl I$ IT THE "Q" KEY? 0423 18EE OR 0413 REPEAT THE END OF DATA AND END OF 
0404 20F9 OR.NZ,03FF IF NOT, THEN KEEP SCANNING BUFFER. TESTS 
KEYBOARD UNTIL ' IS PRESSED 
0406 CD2600 CALL 0026 THIS DOES HOME ROM RST 10 TO Note that the keyboard is only tested once for 
TRANSMIT A CARRIAGE RETURN the "S" key, then up to 265 bytes are printed out 
0409 El POP HL RESTORE POINTER TO BUFFER BYTES When this is completed we return to REPOSTA which 
O40A ES PUSH HL sends a DONE message to TOS. If TOS has anything else 
040B 7C LD A,H THIS TESTS WHETHER HL POINTS TO to output to the screen, it repeats the request for 
COMMAND BUFFER 210D HEX OR TO data printout and up to 256 bytes can again be 
DATA BUFFER 2000 HEX printed. So we only get the chance to stop the screen 
040C 1F RRA CARRY WILL BE SET FOR COMMAND scrolling every 256 bytes. 
BUFFER, AND RESET FOR DATA When you try the program, you will see tne 
BUFFER READOUTS scrolling freeze occasionally and will have to press 
040D 0600 LD B,OO THIS SETS UP A PRINTOUT OF "Q" to restart it. This shows that the routine does 
UP TO 32 BYTES, THE MAXIMUM work. I see no software bugs to prevent it from 
SIZE OF THE MESSAGE AREA IN THE working all the time (i.e., every 256 bytes). I don't 
COMMAND BUFFER know enough about the hardware mechanisms involved in 
O40F 3802 JR C,0413 paging in and out the Zebra FDD shadow ROM, but I 
0411 0621 LD B,21 THIS SETS UP A PRINTOUT OF UP TO suspect a timing problem or a keyboard debouncing/ 
256 BYTES, THE MAXIMUM LENGTH OF reading problem more than a software problem. Does 
THE DATA BUFFER, 2000 TO 20FF anyone have any suggestions for further study so we 
0413 El POP HL RESTORE BUFFER TEXT ADDRESS can nail down the source of this problem? 
0414 04 INC B TESTS THAT WE DON’T EXCEED THE 
0415 78 LD A,B MAXIMUM SIZE OF BUFFER 
0416 FE21 cP ai 
by Dick Wagner 
The final OLIGER SAFE DOS (Disk Operating Now the user can change disk names at will with the 
System) on EPROM is now available as version 2.52. RESTORE /"New disk name" command, This is handy for 


The system is more than just a disk operating system. 
The additional utilities that John Oliger provides 
are interesting and useful. 

Hore are some of the latest features: 

1. A fast FOR--NEXT loop routine 

2. ERASE /"Filename" command 

3. improved cataloging (CAT command) 

4, RESTORE /"New disk name" command 

5. MERGE /"Name" command 

Along with these, there is a well-coordinated 
version of the MSCRIPT word processor available to 
use with SAFE DOS, and it is now possible to operate 
two disk drive operating systems at will, without 
changing disks! (i.e., OLIGER and LARKEN) 

‘The fast FOR--NEXT loop utility provides a con- 
stant speed whenever it is used in a program, giving 
9 to 50 times faster operation. Only one such loop is 


permitted, but it may be mixed with regular BASIC 
loops. It is simple to implement. The variable must 
be assigned at the beginning of a program, such as: 
5 LET /k=1 
200 FOR /1 TO 100 
255 NEXT 


The ERASE /"Filename" command permits erasing 
any disk file, which ie great for cleaning up a disk. 
All consecutive files following the erased file are 
moved up and the catalog is corrected without blank 
lines. 

The new CAT extended command produces an 
improved screen display with an added column which 
shows the starting address for code and data files. 

The extended command FORMAT /"name" has been in 
use from the beginning, as it is always necessary to 
give the disk a name (even if the name is only “ "). 


26 


formatting disks in advance. 
With the new MERGE /"name" command, Oliger makes 


it possible to append a program to an existing 
program, without seriously polluting the current 
program! 


Printing a hard copy of the disk catalog is a 
snap. In the immediate mode, type: LET /P-0 and OPEN 
#2,"p",. Now type CAT, and the display is shunted to 
the printer in place of the screen. 

The OLIGER SAFE disk system and hardware has the 
unique ability to be compatible with the LARKEN DOS 
(Disk Operating System), which is supplied in cart- 
ridge form, and is available from LARKEN (and RMG 
Enterprises). Now the user can operate both systems 
interchangeably at will (with the LARKEN disk in 
drive 0 and the OLIGER disk in drive 1...for 
example). The extended commands can be sent to either 
disk, and even some OLIGER commands can be used in 
LARKEN programs, such as the fast FOR--NEXT loop 
routine. As I prefer using the OLIGER DOS, I can 
purchase programs available only for the LARKEN DOS, 
make the appropriate program changes, and save a 
version on the OLIGER. 

My personal favorite (and much used) disk oper— 
ation is in conjunction with NSCRIPT version 5.3. I 
make a MSCRIPT utility save on each disk I use with 
this program. A special FILE 0 program is used with 
LOAD to display the catalog with a moveable cursor. 
Select MSCRIPT, press ENTER and there it is. Issue 
the CAT command in the MSCRIPT menu and the catalog 
is displayed. Select a program to LOAD into MSCRIPT 
as text, and there is the complete text, including a 
list of printer commands used with that particular 
text. A quick delete of the text leaves the printer 
codes to use as reference. 


For convenience, I also have the printer codes 
(52 possible) stored on the same disk as text. It can 
be loaded at any time, referred to, codes added to 
the list already in the reference lines, and then be 
deleted. The alternative is a printed listt 

Many large printers provide graphic capabilities 
where every print pixel is defined. John Oliger uses 


the OUT 127,n direct port approach for this type of 
programming. I prefer to use the LPRINT method 
commonly used in many computer programs. The LET /P=0 
command will not properly send printer codes greater 
than 127. The word from John, is to make 2 pokes: 
23300,60 and 23301,3 to overcome this problem, so 
that LPRINT CHRS n will work properly. 


ROTRONICS WAFADRIVE 


LP J 


The following utility program was 
TIME DESIGNS by Dave Maccarone, a former authorized 


supplied to 


distributor of the Rotronics Wafadrive. Rotronics is 
not longer in business. It should be noted that the 
following “Tape Transfer Utility" is for the Spectrum 


computer or the Spectrum-Emulated Timex Sinclair 
2068. 

When transferring software from cassette to 
wafer, some kind of transfer utility program is 


virtually indispensable. The program given here is 
written largely in BASIC and sets up its own machine 
code subroutines. The three facilities provided by 
the program are: 

1. READ HEADER: Essential for analysing the 
attributes of files on cassette. Displays the auto— 
run line number of BASIC programs, location and 
length of code files. It works by reading the program 
header which preceeds the file on tape. Beware of 
false headers! 

2, RECLAIM RAM: This 
initializes the Wafaderive 
reclaims all RAM used, 
served. 

3. STOP: This can be used to load # BASIC 
program such that it is prevented from auto-running 
once loaded. It will thus cope with “anti-merge” 
Programs. The auto-run line number is displayed on 
screen with the program name. The utility program 
itself is overwritten. 

The machine code subroutines used by the program 
are all relocateable and can be lifted for use in 
your own programs. Memory saving techniques have been 
used in the BASIC to assist when working in “con— 
fined spaces". The program can be further reduced in 
size if required by splitting it into three parts 
and/or by loading the machine code straight into the 
printer buffer as a separate file. 


option effectively de- 
Operating System and 
The BASIC program is pre— 


TAPE TRANSFER UTILITY 


10 PAPER VAL “S-i INK NOT PIz BORDER VAL 
20 CLS : PRINT “Enter number:“"7?? 
30 PRINT “ 1 READ HEADER~ - loads header from cassette 


"5": GO SUB VAL “1e3” 


3 displays file attributes.” 
40 PRINT '?" 2 RECLAIM RAM“?" ~~ de-initialises WOS & 
reclaims RAM.” 
SO PRINT 17" 3 STOP"?” = loads BASIC program from cosse 


tte, preventing auto- run.” 
60 LET a$=INKEY$: IF a$<{“1" OR a$>"3” THEN GO TO 60 
70 CLS = GO TO VAL “1007mVAL at 

100 REM HEADER READ 

110 PRINT ~ HEADER READ “'? "Play tape.. 


: RANDOMIZE USR VAL “2 


3320": CLS : LET a=VAL “23296” 

120 LET t=PEEK a: LET a=a+SGN PI 

130 PRINT “TYPE:*,”Program” AND (NOT t)s“Number array” AND (t#S 
3N PI);"String array” AND (t=VAL “2");"Bytes” ANO (t=INT PI) 


140 PRINT '“NAME:”, 
a))2 LET oma+SGN PI 
150 PRINT '7“LENGTH 
“3° 

160 LET b=PEEK atVAL “256MPEEK (ati) 7: 
TO-RUN:”,2 IF BCVAL “1e4” THEN PRINT b 
170 IF {sINT PI THEN PRINT *“START!”,b 
180 PRINT £NOT Piy“Press a kay to return to menu“: PAUSE NOT PI 
+00 TO VAL “20” 

200 REM RECLAIM 

210 PRINT ~ RECLAIM RAM ~ 

220 GO SUB VAL “2e3"! CLEAR ¥: 
val “207 

300 REM STOP 

310 PRINT “ STOP “*?“WARNING! 
ted."t GO SUB VAL “2e3” 

320 PRINT “The number shown on screen Is 
the program would normally auto-run. 
"233697: STOP 

1000 RESTORE 

1010 DATA “221~,"33","0","91", "221" ,"229", "17", "177, "0", "175", "5 
37,7205", "86", "57, "221" , "225", "48", "242", "251", "201" 

1020 DATA “2197, 712", "205", "46", "10", "2057, "159", "0", "42" ,°997," 
727,734", "101", "92" "42" ," 146" "92" ,"34", "106", "92", "33", "182%," 
72", °4" "244" 478", "195", "232", "25" 

1030 DATA “1”,"34", "0", "247" ,"213", "221", "225", "2217, "84", "17, "2 
387, 7221", "54", 715", "120", "62", “17, "50", "116" "92" 7205" "50", "7 
17627, "255", "50", "6B" , "92", "237", "75" "66", "92", "205", "27", "26" 
172077, 7255" 7 

1040 FOR asVAL “23320" TO VAL "23405": READ aS: POKE a,VAL as: N 
EXT az RETURN 

2000 REM CONTINUE? 

2010 PRINT '?"Press Y to proceed or any other key to return tom 
enu” 

2020 PAUSE NOT PI: LET asPEEK VAL 23560": 
>CODE “y” THEN RUN 

2030 CLS = RETURN 


FOR n=SGN PI TO VAL “107: 
NEXT 
")PEEK G+VAL “256MPEEK (a+1)": LET a=c+VAL 


PRINT CHR$ (PEEK 


IF NOT t THEN PRINT "AU 


RANDOMIZE USR VAL “233407: GO TO 


- this progrom is lost when selec 


the line from which 
’e*Play tape ver ;USR VAL 


IF a(>CODE “Y~ AND at 


er iiiitisiissietesteiiscii srl tele tistics ii cetecsccestessisissestissistrcsecd 


PUZZLE 


oF 


THE MON TH 


Bess sisj ibis ss tosses lest i sett testes titties iiss sctccscsssissststesestessisscctttd 


The GIVENS of this puzzle are: 


CEDRIC R. BASTIAANS 


A. There are 5 children, all more than 1 year old and younger than 25. 
B. Their combined ages total 40. 


C. The product”of the boys’ ages is 39 times the product of the girls’ 


ages. 


D. Next year, the product of the boys’ ages is an even number of times the 


product of the girls’ ages. 


CAN YOU COME UP WITH A PROGRAM FOR OUR COMPUTERS TO FIGURE OUT THE AGES OF THE 


FIVE CHILDREN??? 


Exclusive advance 
purchase ! 


SINCLAIR Z2H¥83 


We've done it again! Be the first in your street to own 
Sinclair’s new baby, the incredible ZX89! Just look at 


Buy yours NOW! 


DON'T WAIT TILL NEXT MONTH 
FOR THE VZ200 
Geat the delay — buy your V2200 Dick Smith color computer 


now from us over Ihe counter! How do we do it? Simple! As soon as 
we heard of the VZ we bribed security guards at the Hong Kong 


o factory to shoot machines out the side door!! 
wv these features: 
% 
nen ; 
z= * Powerful, Cray 1 compatible processor on one chip! Standard Machine $853.02 
6 + 14 Megabytes of RAM on one chip!! 
= * Advanced touch-sensitive muitilunction keyboard — each 
Lal key has 27 functions!!! 


Prices exclude post, packing, sales tax, case, bribe, keyboard, 


* Twin 10 Mbyte winchester disks — new, ultra-mini design 
noes t maouc! and connecting cables. 


exclusive to ZX89I1!! ; : 
* Plugs into your own TV, runs ‘or a year on two micro batteries 
(not supplied! 
+ Auto repeat function on exclamation mark key 11111" 


money « 


All this for just $35.00 inc sales tax, post, packing, all connecting 
cables, and all the software you can get into your house! (Send 
cash only — no cheques, credit cards, POs, Lan Choo Labels, ete 
accepted. Strictly mail order only.] 


UNUX 


Now you can have the power of this incredible Unix-like 
operating system on your 2X81! Just like Unix but “pruned” 
to fit into basic 1k ‘81! 

Don’t be feft out when your neighbours switch to Unix! Just 
$23,427.63 (on cassette only). 


Microbee Pacemaker 


real 


send 
humorous little ditty from Austral 


That's right! Now you can control your own heartbeat with 
this powerful software package. All connectors plus scalpel 


blades supplied — install it yourself with our easy-to-follow B * 4 
+ instructions. Lifetime guarantee. Supplied on cassette for usINess soitware 
= just $15.95 inc p&p (no refunds). Ask about our very own 
life insurance scheme exclusive to Microbee Pacemaker owners! 
o MoraiStar: New addition to your word processing suite. Auto- 
B [oS he matically searches your text for dirty words, expletives, double- 
entendres, etc, and replaces them with ‘clean’ text which even 
wa F Nile would approve. A ‘must’ for TV scriptwriters! 
Went £t $750.00 
zz | Games software 
Bur TLO Toolkit: Trying to get to grips with The Last One? Our TLO 
ru 7 Toolkit makes the job a cinch, gets TLO working, produces exactly | 
iJ the code you want. Definitely the last program you'll need to 
c Dam: Build your own Franktin below Gordon obstruction, tend off n u 
on the Greeny attackers by puncturing their rubber dinghy. With buy [revised version coming in September). $540.00 
eo full colour, sound, fast-moving graphics. $20.00 VIC-370: Give your VIC 20 the power of an 1BM 370 with this 
B super conversion program! You too can have mainframe computing 
raved Orphan attack: Defend the food-laden table from invading ower at your fingertips in the comfort and privacy of your own 
H an hordes of hungry orphans, Can you eat it all before they do? $16.00 home. Requires 1,432 16k RAM packs. On cassette only $37 50 
77) 
ee innuendo: Not a game but an indispensable addition to your word 
ou Hitch-hiker: You're driving along a dark road. Suddenly a hiteh- processing system. Scans your text and inserts dirty words, exple- 
hiker appears in the gloom, Can you run him over before he tives, doudle-entendres, etc, in place of ‘clean’ words. A ‘must’ 
2 | iveps ctear? $520.00 tor TV scriptwriters! $23.95 
oo i 
Sy rie Seanes ob tii F vdoras Ut iste addveniuute” lye Gormeslants Bumper Bundle: All your favourite packages on one Gdisk! Word. 
Hee ee ee eee ee eee torte ihe alt star, The Last One, dBase 11, Visicalc, Unix, MBasic and seven | 
Re ee ey eye a ine ilagicen aLagons ligt tye versions of Pascal, all available for the first time on a single diskt | 
co od ha leligwers, ie Phines ‘of Tage Find tne $9.20 (discounts for buik orders and educational institutions) | 
fe) the mystic Gzknw 2 {Manuals not available at time of going to press.) | 
wu Treasure of Pijjj and you've won! $2.00 inc free dictionary . | 
20 The Editor: Incredible new ‘artificial intelligence’ program replaces | 
Zap the Zits: Can you stop those pesky zits from spreading? Magazine editors with a computer. You too can produce your very 
rE ip. 
t The faster you zap them, the faster they come back! Find the ‘Own mich magazine in the comfort: and privacy ol your oon 
Pen secret ‘Clearasil’ button to win. Full sound and colour. $45.00 homel As used by J Pierce, L Belle and several others. $2500.19. 
om 
pa 
om 
zZz2 


WILD BILLSCOMPUTER 
RODEO 


| PO BOX 835539A SYDNEY 
| (02) 747 6311 


Rieter ss ie si osscetrecieisscstterireisetsscssseststiseississitsitsttsres tests ses 59 
THE SOLUTION OF THE PUZZLE OF THE MONTH 
Bsc S iii ts tei s ste sescesec se tesserisertjeiectestessseisetessesessississestistst si 

CEDRIC R. BASTIAANS 


First, we'll give the children some simple names, very simple like a, b, c, d 


and e. 
‘Then, we will assume that there are 3 girls and 2 boys, Maybe it’s the other way We may thusly write the following program: 
around, but we'll see. 
Furtheraore, the number 37 can only be composed of 1x39 or 3x13. What this means 10 LET A=13 
is that one of the boys simply HAS to be 13 years old, while another boy’s age 20 FOR T=2 10 7 
HAS to be divisible by 3. We aay thus write: 30 LET Be3aT 
40 REM EQUATION (8): LET SUM=T8(27-28T) 
a=13 and 50 FOR D=2 TO 24 
beSt, where t=1,2,3....8 (maximum 8, because no one can be older than 24). 40 FOR E=D To 24 
70 REM EQUATION (7): LET C=DSE/T 
The girls being called c,d and e, we may write (algebraically): 80 IF C=INT(C) AND (D+T) 8(E+T)=SUM THEN 
GOSUB 1000 
Bede = 1S(St) or cde = to eeeeseceeecevenseneeeees aw 90 NEXT E 
Also: 100 NEXT D 
ctdtetiSe (St) = 40 or cHdte = 27-3t veeeeeseeeeeeee (2) 110 NEXT T 
120 STOP 


cde = 8... 
and ctdte = & 


Aes) 
1000 REM NEXT YEAR AND SOLUTION 
1010 LET X=(A+1) 8 (B41) (C41) 
From equations (1) and (3) follows that: 1020 LET Y=(D+1) #(E+1) 
tore 1030 IF X/Y=INT(X/Y) THEN PRINT 
‘On the other “THE BOYS ARE "3A;", "3B; 
te7 " AND";C3" YEARS, THE GIRLS 
ARE "Dj" AND "3E;"." 
Equations (5) and (6) contradict and the truth is therefore that we have THREE 1040 RETURN 
boys and only TWO girls! 


The situation for the 3 boys a, b and c and the 2 girls d ande is therefore 
trifle different: 

Bde = 13(3t)c or de =tc or cx de/t., 
while, however, equation (2) still holds true! 


m 


Substituting for c in (2) yields: With this program keyed into my TS2068, it displayed the solution in 11 seconds 
Stide/t+d+e = 27 BOYS 13, 9 and 8; GIRLS 4 and 6. 

or St2edetdttet = 27¢ 

or t2tdetdt+et = 27t-2t2 


or (det) (eet) = t (27-28) + (8) 


A Letter From Fred Nachbaur 
(concerning the PC8300 "Timex Clone") 


Dear Tim, 


1 read with interest Eruce C. Taylor’s article on the pcessoo, 
since I have been quite deeply involved with this machine. I would 
like to clarify some of the points brought up by Mr. Taylor. 


The 50/60 Hz. signal diode serves exactly the same function ‘as pin 
22 of the 2X81/TS1000 ULA. The video frame rate has nothing’to do 
with the power-line frequency; instead, it is determined by the 
that unique blend of hardware and software that constitutes the 2X 
display system. In the PC8300, the 50/60 Hz. diode goes to an 
input port. Each time through the display loop, the software 
checks whether this port is high or low, adjusting the MARGIN 
system variable accordingly. . 


It should be noted that the machine (and the 2X81, for that 
matter) runs about 50% faster, overall, in SLOW mode, if it is in 
the 50 Hz. mode. This is because the system has more time between 
frames to work oan your program. My ROM improvement (more about 
that later) allows MARGIN to be changed by the user, and always 
defaults on power-up at 60 Hz. regardless of whether the diode is 
connected or not. 


29 


There is most certainly a clock component on the PC8300 board. It 
is exactly the same as on a 2X81, a 6.5 mHz. ceramic element just 
to the left of the ULA, in front of the modulator. This behaves 
electrically just like a crystal; the only significant difference 
is that the frequency stability and precision is less than that of 
a crystal. For most jobs, however, the variance is negligible. 


There is also most certainly a 280A on the board. This is the 
large chip in the centre. Mr. Taylor may have been confused by the 
fact that some manufacturers of the Z8OQA give it their own part 
number. The designation 780C is particularly common. There is 
absolutely no difference between such chips and Z80A’s marked as 
such. 


Regarding place of origin, it does say "Made in Hong Kong.” 
However, the manual is written in the Chinese dialect of the 
mainland. Draw your own conclusions. 


There is nothing strange about the fact that the 1 REM location is 
793 bytes higher on the PC8300, than it is on the 2X81 family. 
There is also nothing mystical about memory allocation. The only 
difference is the location of the display file. On the 2X81, it 
rides above the BASIC program. It therefore moves about as BASIC 
lines are added and deleted. On the PC8300, however, the display 
file is always at a fixed location BELOW the program area. What do 
you get when you multiply 24 lines by 33 bytes per line and add 1 
for end-of-file marker? That’s right, 793. 


The PCS300 will successfully load ZX&1 programs that are entirely 
in BASIC. It does this by looking at the VERS variable, adjusting 
how it perceives the incoming data as required. However, because 
of the way the display file location was modified, it will NOT 
load any BASIC variables associated with the Sinclair program. So 
if your program is, for instance, a mailing-list, you can load the 
program but not your data. 


Worse, the different location of the first program line means that 
machine-code won’t run unless it was written ta be position- 
independent, and you adjust all USR calls accordingly. Even worse, 
no ROM calls are allowed since the ROM routines were completely 
scrambled, presumably to help prevent copyright hassles. For all 
practical purposes, one can consider that it is completely 
incompatible with 2X81 machine-code. 
i 

There are also some relatively minor, though potentially 
troublesome changes in the system variables. You have to be aware 
of these if you intend to write machine-code for this computer. 


It is not possible to use a straight Timex or Sinclair ROM with 
the PCS300. Rather, it isn’t practical. The reason is that the 
hardware of the display system is sufficiently different to . cause 
the display to be "wonky," for lack of a better word. 


I have developed a Timex-compatible ROM which runs all Known low- 
res Timex programs, including machine-code. The only pregrams that 
won’t run, are high-res programs and SOME "banner" programs. 


The other hardware-dependent factor is the character set. These 
are NOT housed in the top SiZ2 bytes of the ROM, as on the 


30 


Sinclair. Rather, they are contained within the custom chip, and 
are the reason that high-res won’t work no matter what we do. 
There is no point, even, in trying to revector the I register; 
actually a blessing, since it is now available to the programmer. 
For instance, IM2 (interrupt mode 2> is theoretically usable with 
this machine. On the down side, some of the Sinclair punctuation 
(:  ? and the pound sign)? still remain game characters, and the 
grey graphics are right triangles and a "race car". 


Otherwise, the PC8300 behaves just like a TS1000 with the mew ROM. 
Even the Keywords were reverted to their original Key locations. 
Keywords are, of course, entered with a single Key-stroke. 

To make up for the few remaining shortcomings of my Timex- 
compatible ROM, it sports a few added features, some of which are 
not available either on the 2X81 or the stock PC8300. A new BEEP 
Keyword turns beeping Keys on ar off. The REM command is now used 
to turn the blinking cursor on or off, in addition to its use as a 
REMark statement. A BASIC single-stepper ("debugger") is included. 
The machine can be set to make an audible noise when loading or 
saving a program. 


Hardware-wise, there is nothing "different" about the electrical 
characteristics of the edge-connector lines. The problem is that 
some of them are missing. That’s right, the edge traces go 
absolutely nowhere. Most of these (WAIT*, BUSRQ*, BUSAK*, HALT, 
NMI¥, etc.) are mat commonly used by external peripherals. At 
least one, however, is relatively vital; this is Mix. If this line 
is brought out, the FPC8S0G will work with Timex/Sinclair- 
compatible 64K RAMpacks. Incidentally, ne modification is needed 
to run machine-code in the 32-4&K region. In this respect, it is 
like the TS1500. 


Even without the M1* or ather lines connected, the ‘8300 works 
with most ordinary Timex peripherals, such as the 2050 modem, 16K 
RAM, 2040 printer, many "big-printer" interfaces, and so on. One 
notable exception would be the Oliger Video Upgrade, again because 
the ROM does not contain the character patterns. Other devices 
that would not work include anything with an EPROM that overlays 
the ROM (e.g. the Memotech parallel interface)? , or contains ROM 
calls (e.g. the A&J Stringy-Floppy>. 


In my (admittedly biased) opinion, the PC8300 is virtually 
useless, unless its ROM is changed to make its claim of "Timex 
compatibility" at least S0% justifiable. 


Regards, 


; = 
SoMPLEST Fred Nachbaur 
VOLT -METER 


THIS LITTLE CIRCUIT DETECTS 
ANY VOLTAGE FROK 2 TO 125 


sues 2" [ UPDATE! 


gottaves, patties wate 15 ed 
volts, RoC. oF OC. REI agg 


967 Lamp nag be ordered 


through any electronic Supporting the Sinclair QL, 288, and TS-2068 


Subscription $15.00 Year. UPDATE Magazine, 


i 1317 Stratford Ave., Panama City, FL 32404 
Hatt rate vials 


BEYOND THE TS 1500 (Z2x*81/7TS 1000) USER MANUAL 


CRHTYPE i000 (M/C VERSTORN> 
by Earl V. Dunnington 


Now thanks to Earl, we have a sum-checker program for 
the TS1000/TS1500/ZX81, Just like the one Stan Lemke 
introduced for the TS2068 in TDM, May/June '88. 


The Machine Code is not relocatable preparation for either typing in a program 
and the program requires a minimum of 16K or LOADing a program from tape for which a 
RAM. Those readers who wish to use the CKTYPE listing is desired 
CKTYPE listings should LOAD the final BASIC Instructions for operating the 
version before proceeding. programs will be displayed on the screen. 
Listing K is the final decimal machine Anyone needing more detailed instructions, 
code data, after deleting the unused send an S.A.S.E. to me at 4356 King 
portion of the Run Time Package. Included Theodore Dr. Boynton Bch., FL 33436. 
in the code is a routine to load a program Comments on this series of articles are 
from tape; defeating the autorun. This is also solicited. 
Necessary as some programs may contain LISTING K 
machine code that would be loaded into the BCL) 64 34 416 
area where the code for CKTYPE 1000 will 5113) O° T° B38 
reside, if they were allowed to autorun. bre Boe pen cos 
The loading routine will not work if you 3 (32) SEG Aer, 216} 126 
Play the tape before the end of any program (43) 12633 0 @ 
Proceeding the one you wish to load. 3 (S23) t 33 220 eo 
Listing L is a program that will eet) 427 eee 22. e. 
convert the machine code data into the $173) @ | 42, 120 126 25 
corresponding character (CHR$) and enter it #138) iba Bs i> a> a. 
into the dimensioned string A$. This et O2), (teeta. 85) oe. te! 
program will also produce a printout in the Pea ge are peer tse eae 
same format as Listing K, so that you can $(115) 42 ie 126 
check the data. To correct an error, use See ae are oe 
the direct command: eiaaas 3 4 
§ (145) 3. 2 
LET AS(n)=CHRS c s(1ss) 3a TEE 
where n= the string character number and Ze) e 
c= the correct decimal code. Figs 
WARNING! FROM THIS POINT ON, DO NOT USE (187) 
CLEAR, DIM A$, NEW, OR RUN. These commands elias) 
would erase As. 3 B85} 
Listing M is the CKTYPE printout for bres 


Fs 
iT 
0 
B 


the program of Listing L. 

After entering and checking all of the 
M/C data, program lines are to be deleted 
or added so that the program will now 
appear as in Listing N. After POKEing some 
additional machine code into the REM 
statement using the direct command GOTO @ 
and deleting lines 2 to 6, this becomes the 
final CKTYPE 1000 M/C program. To SAVE the 
program on tape, use the direct command? 
GOTO 20. 

Listing @ is the CKTYPE for Listing N 
before using the command GOTO 2. 

When LOADed, the program will? 
Set RAMTOP to 32085 
POKE the machine code stored in A® into the 
addresses above RAMTOP starting with 32054 
Clean the memory below RAMTOP in 32 


a 
anon 
BRU, 
plist 


ea 


Q 
6 
: 
8 
Et 
i 
3: 
2: 
i 
i 
; 
2i 


HaMMwEg us Os 


DIDDH DDD PSHHSDDLDDYDIDDSHIDOPPOVOPVPGYHH HN PIDYHPPSHHDDALIDpVypvya yyy 
QAO 


TA s 


AS( 204 LPRINT TAB _O;"AS("EN ; 
Bz 8 8; c0DE Ag iN) 7TRG 2; CODE Ag INE 
; ;CODE ASIN+2); TRB 20; 00 
A Bs Ge teee aueasiene “en 
i +5) 
ASL 205 NEXT N = = - 
| Hee hie Lo. oa 
Ag(469) O = 121 T COMMAND: TET asin) =cHR ial ua 
Ag(469) 111 201 § DATA UHERE NeTHE f 
88 (423) [ 355 Bopaeate NUMBER aN THE STRING AN 
2 » DATA IS R- RECT VALUE" 
REGSs) Bie HE pie Pe 
216 
Ag isos) 198 35 
¢ 
Bg tet) 38. ile LISTING 4 
Ast 
Ag(523) 151 237 20 as see 
Ag(529) 122 203 170 54 230 
AS(535) 225 125 150 21 1497 
AS(542) 47 264 185 5 533 
Ag(547) 24 343 199 43 S22 
AS(SS3) 233 151 200 3 417 
Ag(559) 75 69 BOL dad 4567 DS 
Ag(565) 119 213 gee Be 28, 1 REM 1254 
Ag(571) B25 203 2o3 23: «Base 
Ag(577) 127 ied 20d: 163 5429 2 POKE 16510,0 
Ag(53S) 56. 35 BOs 3 417 3 POKE 16514/49 
Ag(589) 233 125 286 191: 6318 4 POKE 16515;31 
AS(595) 203 1 210 2 ere) 5 POKE 16516,125 
AS$(601) 150 56 18 ReTURMe oe 
Ageia) 234 33° 20 SAUE “CKTYPE” 
- 32 FAST 
Beiezs) i igs Ltsyine¢ 48 POKE 16983,85 
Ag(625) 2 198 7 
Ag(631) 36 35 1 6 SQ POKE 16389125 
Ag(637) @ 25 Fy 21 6Q@ POKE 3208462 
Ag(643) 94 43 3 : 22 744 BOE. geeese 
AS(649) 193 209 4 : BB 26 
AS(655) 227 115 5 23 90 POKE 32081,115 
Ag(BB1) 7 43 8 33 102 POKE 16335,31 
AS(6B7) 127 225 to F 440 POKE 16387125 
AS(673) 115 201 Bo : to 128 RAND USR 16514 
Ag(679) 110 38 30 iB -13@ GOSUB 18 = 
to Be 240 PRINT AT 2,9; “SETS 
50 : BS SAT 2,8; "1. RAMTOP HAS BEEN SET 
20 : B2 AT 2085"; AT 4,0;"2. PRESS ALE 
se hae TTER KEY TO MOVE ' M7c_ABOUE RAM 
150 PRINT "UGRKING FROM LEFT TO 50 : 3 ALLOWING! MINS B NOTE OF THE F 
2 ; 30 2 
RIGHT, ENTER A DATA VALUE” 1200 22 190 PRINT AT 6,0;"S. WHEN CURSO 
130 FOR N=1 TO 682 793 38 R APPEARS, EITHER TYPE IN A PRO 
185 INPUT DATA ia ce GRAM OR LOAD A FRO-GRAM FROM TAP 
190 LET ASIN) =CHRS DATA ise te E USING THE DIRECT COMMAND: RAND 
2@0 NEXT_N 140 190 . 
201 PRINT AT 0,@;"TO OBTAIN A F ise 1aa APOKTEE LeSTEnG?’ ASE SHEE ENE 
RINTOUT OF AS, TURN ON PRINT ié0 a1 a WShoabeoe ee 
ER_AND PRESS A LET-TER KEY OTHER 7a: 43 CT SOMMAND: RAND USRS2055 
ie pee rae ig 1ae EEE Nd ISse 
327 
20S FOR N=1 TO S82 STEP 6 ABe. «See 299 POKE N+32a85, CODE AsiNi 
s 280 NEXT N 
ane e B1@ NEU 


FOR YOUR QL 
ARCHIVE SECRETS 


by Real Gagnon 


ARCHIVE is a powerful database program but there are some little But sone of these codes have a more unique effect, let’s see 
known secrets that can make life easier to every prograamer. some of them. 

ARCHIVE version 2.35 introduced a whole new control characters CHR(4)+CHR(c) +CHR(r) is very useful, CHR(c) will be repeated 
set which are undocumented in the ARCHIVE reference manual. “r” times. 

These characters adds more options to the ARCHIVE PRINT command. If we have PRINT CHR(4)+"%"+chr (80), 

f complete list can be found in the ARCHIVE RUN-TIME manual only the character "#" will be displayed 80 
available from PSION or maybe from a few OL dealer. times on the screen. 

We learn that some characters with ASCII code inferior to 32 get CHR (S) is an underline switch, Try this: 
special attention from the ARCHIVE screen driver. PRINT CHR(S)+*SINCLAIR*4CHR(5)+* QL" 
Some of these characters have their equivalent in ARCHIVE CHR (6) moves the cursor to the right 
language, for exemple, take CHR(1), it can be used to set the CHR (a) moves the cursor to the left 

INK color, the fora is CHR(1)4CHR(n) where n is the color number 

(same number as in SUPERBASIC). CHR (9) +CHR Cc) Same as SUPERBASIC PRINT TO c, 


where c is the column number. 
PRINT “This a"+CHR(1)+CHR(2)+"test" is equivalent to 


PRINT "This a "sink 2;"test" . 33 CHR (10) noves the cursor down 
CHR (11) aves the cursor up 


CHR (12) erases the screen like CLS. 


CHR (14) then you see the cursor flashing 
CHR (15) then you don’t see the cursor flashing 
CHR (18) +CHR (n> is the equivalent to the SUPERBASIC OVER 


command. 
n=O then PRINT with INK on current PAPER 
n=1 then PRINT with INK with TRANSPARENT 


paper, it’s overprinting. 


n=2 then PRINT with INK but XOR the data 
on the screen. 


CHR (20) +CHR (a) 4CHR(D) creates @ WINDOW. 

*CHR(c)+CHR(d) The coordinates are in “characters”. 
“a” is the left margin from the left 
side of the screen. 
"b" is the top @argin from the top of 
the screen. 
"c" is the right margin from the lett 
side of the screen. 


"d" is the bottom margin from the top 
of the screen. 


An exemple will help to understand the 
ARCHIVE WINDOW creation. 


PRINT CHR(20)+CHR (10) +CHR (15) #CHR (20) + 
CHR (30) 


will create the fellowing WINDOW. 


TOP 


LEFT RIGHT 


Archive screen 


BOTTOM 
There is only one active WINDOW at 
one tine. 
The initial ARCHIVE WINDOW is defined 


with the following parameters: 
CHR (20) 4 CHR (0) +CHR(O) +CHR (80) +CHR (25) 


CHR (21) +CHR (nd scrolls up lines. 

CHR (22) +CHR (nd scrolls down "n" lines. 

CHR (23) +CHR (nd scroils left "c* colums. 

CHR (24) +CHR (nd scrolls right "c" columns. 

CHR (26) exchanges the PAPER with the INK, it’s 


INVERSE printing. 
CHR (27) +CHR (n) is for special CLS. 
n=65 , CLS from the cursor position ta 
the end of line. 
n=46 , CLS from the cursor position to 
the end of the screen/window. 
n=67 , STORE the cursor position. 
n=68 , RESTORE the cursor position. 


CHR (30) puts the cursor at the position 0,0 
without erasing the screen, 


CHR ($1) +CHR (a) #CHR(b) = Same as AT a,b . PRINT at line "a", 
coluan *b". 


There is more control codes, but these are the most useful ones. 


A very useful undocummented feature with the SEDIT command is 
hidden in ARCHIVE version 2.35. 


binen designing a screen, ARCHIVE provides some graphic 
characters to draw boxes. To use them, in SEDIT, do F5 and after 
press any key between "a" and "k". When drawing a box, you don’t 
have to press each time FS and the right key because SEDIT gives 
an easy way to repeat the last typed characters, just keep your 
finger on SHIFT and press a cursor key. 


These graphic characters are sinilar to those found on IBM 
GRAPHICS compatible printer. Run the following program to print 
a reference sheet for the 11 new characters with the 
corresponding ARCHIVE codes. Your printer must be set for the 
IBM GRAPHICS character set #2, but anyway if your printer do not 
have the capability to print them, you can still use them in 
ARCHIVE! 


SuperBasic program to print a 
reference sheet for ARCHIVE 
graphic characters. 


1 REMark by Real Gagnon Montreal May 1988 

2: 

10 OFEN #4, ser1 

20: 

30 PRINT #4,7.ARCHIVE graphic characters (SEDIT) 

35 PRINT #4," function key F5 then one of the following keys:” 

‘37 PRINT #4, CHRS(27)57A73CHRS(18) : REMark set line spacing (opt.) 
40 PRINT #4,°KEY *,”  CHARAGTER”," ARCHIVE code” 

45 RESTORE 

a7 

50 REFeat loop 

60 READ sed, ibm,ql$ 

70 PRINTH4, CHR$(sed), ,CHRS (ibm), ,q1$ 

80 IF sed=107:EXIT loop 

90 END REPeat loop 

95: 

100 DATA 97,179,”224" :REMark 
110 DATA 98,180, °225° 
120 DATA 99,191," 226" 
130 DATA 100,192, 7227” 
140 DATA 101,195, 72207 
150 DATA 102,194, "229° 
160 DATA 103,195, °2307 
170 DATA 104,196, 72317 
180 DATA 105,197,252 
190 DATA 106,217,7253° 


200 DATA 107,218, 7234" 


wun yeheanee 


»ARCHIVE GRAPHIC CHARACTERS (SEDIT) 
FUNCTION KEY F5 THEN ONE OF THE FOLLOWING KEYS: 


KEY CHARACTER ARCHIVE CODE 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 


234 


PC-IMPORT 


How Does This IBM Translator Software 
Package From MINNY ELECTRONICS Stack Up?? 


reviewed by Michael E. Carver 


This package bills itself as "a file transfer and 
BASIC language dialect translater". PC-Import will 
allow the user, who has access to an IBM Personal 
Computer (or compatible) equipped with a communication 
board and a QL, to “download” and translate MicroSoft 
BASIC programs into SuperBASIC, which will run in- 
dependently on the QL. After a couple of false starts, 
I was able to successfully import [BM BASIC programs 
into my QL. 

The first problem was hardware oriented. The 
manual assumes the user has a ready-made RS-232 cable. 
As I built my own cable, there were some problems not 
addressed in the accompanying manual. The QL serial 
ports only have 5 lines (GND, Txd, RxD, DTR, and CTS). 
The IBM serial ports have 9 different lines. In order 
for IBM BIOS to send messages out the serial port, 
both the DSR and CTS lines must be "true". I had to 
"tie" the DSR and CTS pins on the IBM together, to 
achieve communications from the IBM to the QL. This 
was accomplished by soldering a "jumper" wire between 
pins 5 and 6 (CTS & DTR) on the IBM cable end 

The other false start was due to an error in the 
manual. The manual provides step-by-step instructions 
on preparing MS-DOS to send information out its RS-232 
port. To accomplish this, the printer output (LPT1) is 
directed to the communication output (COMi). The in- 
structions successfully got me to this point, but the 
steps to direct a copy of the BASIC program to the 
printer output was in error. "COPY A: [file_name} 
LST1" would not rk. This should have read, "COPY A: 
(file_name} LPT With this minor correction, I 
received data from the IBM successfully every time. 

Before a BASIC program is transferred to the QL, 
it must be in ASCII format. The manual provides 
sufficient instruction on how to insure the BASIC 
files are in ASCII. As the program is “sent” to the 
QL, it is written to a file ona user-specified micro- 
drive. The transfer portion of PC-IMPORT is straight- 
forward and quick. The transfer rate is 4600 baud and 
only takes seconds. 

The most important part of the program is the 
translation of IBM's BASIC into SuperBASIC. As 
PC-INPORT is written entirely in BASIC, the 
translation is slow. Approximately 2.8 bytes are 
translated per second. A 4551 byte program took 27 
minutes and 16 seconds to translate. The manual claims 
that up to 90 percent of the translation work can be 
achieved by PC-IMPORT. I found this figure to be 
highly overstated. Only a portion of non-compatible 
MicroSoft BASIC is transiated into SuperBASIC (see 
Table 1). A fair knowledge of BASIC programming, and 
an ability to follow a BASIC listing to fatnom the 
flow and logic are required to successfully get most 
imported BASIC programs to run on the QL. 


As an acid-test, I took a text-manipulation 
rogram I had written on an IBM at work as an example. 
The program includes no graphics and simply accepts 
input from the keyboard. It then breaks up the text 
into proper spacing for book card labels. Due to major 
differences between the way the IBM BASIC handles 
string manipulation and undefined variables, I ran 
into many problems getting the program to run on the 
QL. Even though I had written the program, it was hard 
to follow the logic and correctly make the "hand- 
translations" required. One of the major problems was 
caused by the incomplete PC-IMPORT translation of the 
MID$ command. 

A 2048 byte program (translated in 12:09 minutes) 
took me about 20 to 25 minutes to re-edit and hand— 
translate to achieve proper execution, I would not 
have .been able to achieve this without the constant 
referral to the MicroSoft BASIC manual. I have had 


limited experience in BASIC programming on an IBM. (I 
would like to take a second to applaud the Sinclair 
BASICs. They are far easier languages to program, than 
MicroSoft BASIC.) If you do not have access ‘to a 
MicroSoft manual, check your local library, you'll 
probably need it. As SuperBASIC will mark any BASIC 
line with "MISTAKE", the “hand-translation" job is 
made easier. The PC-IMPORT manual does provide a small 
table of BASICA commands with SuperBASIC equivalents, 
if any. 

Most of the programs I imported dealt with 
graphics, but none of the graphic commands are 
translated by PC-IMPORT. One thing to keep in mind 
when translating most BASICs into Sinclair BASIC, is 
that their graphic screens are upside down (point 0,0 
is in the upper-left-hand corner). Many of the IBM 
graphic commands can be imitated by creating 
Procedures with SuperBASIC, to achieve the proper 
results (see Listing 1). 

Some other uses for PC-IMPORT, which aren't 
mentioned in the manual, include: downloading BASIC 
ASCII files from bulieting boards and translating them 
into SuperBASIC. Using QUILL to type in a BASIC 
listing, printing it to a microdrive file and using 
PC-IMPORT to translate. The printer drive with QUILL 


SHARPS IS THE 
LARGEST QL 
SOFTWARE AND 
HARDWARE 


DEALER! 


WRITE FOR FREE CATALOG 


Sharp’s, Inc. 


rT N 
Rt. 10, Box 459 : 
Mechanicsville, VA 23111 


(804) 746-1664 or 730-9697 


will need to be altered to print a useable file to the 
microdrive (see Table 2). One may also use a simple 
program to enter an IM listing directly into a 
microdrive file (see Listing 2). 

I have mixed feelings about PC-IMPORT. It is slow 
and incomplete. PC-IMPORT must be viewed only as a 
programmer's tool. To achieve full usefulness from 
PC-IMPORT, the user must be a fair to accomplished 
BASIC programmer. If one has access to an IBM (or 
any other "on-line" source of MicroSoft BASIC), a lot 
of typing and raw translating can be avoided. I 


believe that PC-IMPORT could have been a much better 
Program had other IBM BASIC commands been supported 
(i.e.. PSET, INSTR, SPACE$, "\" or Interger Division, 
LOG). Also commands such as MID$ should have been 
fully translated, or RANDOMIZE should have been 
translated to the British spelling. I only hope that 
Minny Electronics will provide updated versions of 
this product in the future. 

This program was obtained for review from: RMG 
Enterprises, 1419 1/2 7th Street, Oregon City, OR 
97045, (503) 655-7484. 


LISTING 1 


1450 REMark 
1452 REMark 


MicroSoft BASIC command to draw a box 


The two co-ords are adjacent corners of the box 


Table 1 -- IBM commands tranglated ‘nta Super BASIC 
INPUT DATA THEN 
GoTo gosuB TAB 

To fs: asc 
COLOR sar ‘SGN 
Locate LeFTs MIDS 
RIGHTS STRINGS ELSE 

val 

Table 2 -- Quill Printer Driver for ASCII BASIC 


DRIVER NAME :BASIC 
PORT seri 
BAUD RATE 7600 
PARITY NONE 
LINES/PAGE 255 
CHARACTERS /LINE 255 
CONTINUOUS FORNS YES 
END OF LINE CODE LF 
PREAMBLE CODE NONE 
POSTAMBLE CODE NONE, 
All other options NONE 


NOTE: To send the ASCII BASIC to 


1454 REMark #ollowed by ink coler -- B= box or BF = Fill microdrive, the above printer 
1460 REMark - LINE (IX1,I¥i)-(IxX2,1Y2) ,RND¥241, BF driver must be installed or be 
1462 ¢ present on the default drive 
i464 REMark ---~ SuperBASIC translation using PROCEDURE box (usually #1) as "PRINTER_DAT". 
1466 box IX1,1Y1,1X2,1¥2,RND(1 TO 7),4 Select the Print option from 
1468 ¢ within Quill and direct output to 
1470 REMark ---- LINE (IX1,1Y1)~(IxX2,1Y2),0,B (Device filename} instead of the 


1472 box IX1,IY1,IX2,1¥2,0,0: REMark SuperBASIC translation 


1474: 
7000 DEFine PROCedure box (x,y,xc,yc,crayon,all) 
9005 FILL all: INK crayon 

9010 LINE x,y TO x,y TO xeyye TO x,ye TO x,y 
9015 FILL oO 


MANDELBROT 
A Fractal World 
UPDATE 


by Michael E. Carver 


As I was developing the mandelbrot program, I 
was unable to drive my monitor in Fl mode. I was un- 
aware of the difference between the height of the 
characters as sent to the Screen. The following 
listings will allow complete viewing of the mini_menu 
area and the "canvas" while the Madelbrot Sets are 
being drawn (when the QL is in Fi-Monitor mode). 
Key-in and run the following Listing. This 
contains a short machine code routine to send only 8 
lines of pixel information for each character (as 
opposed to 10 in Monitor mode). The program will 
self-install into the machine and save to MDV1_. 


19 REMark 444% loader for SD.YINC assign 

28 a*RESPR(68): RESTORE 

30 FOR x=@ TO 67 STEP 2 

48 READ num: POKE_W (a+x),num 

5@ END FOR x 

68 SBYTES mdvi_YINC_code,a,68 

1988 DATA 17914,56,8316,1,1,28681, 30463, 20935 
1818 DATA 6316, 2,2, 28681, 38463, 20835, 28688, 9326 
1£82@ DATA 48,-16132, 49, -18816, 8319, -22528, 17914, 12 
1938 DATA 28681 , 38463, 20835, 28672, 20085, 12668,8,40 
1949 DATA 2e672, 20085 


printer. 


THE MOST COMPREHENSIVE 
RESOURCE FOR THE SINCLAIR 
QL. GET YOUR COPY TODAY!! 


More and more QL owners are discovering the excellent new book by 
Mike de Sosa — TAKING THE QUANTUM LEAP: The Last Word On 
The Sinclair QL. 


This 280 page book is chock full of useful programs and original 
programming examples. Chapters on using the bundled software and a 
look at the latest hardware and software releases. Written for both the 
novice and more advanced users. Priced less than most software 
packages and nearly two pounds of information! 
$26 (USA). 
Exclusively available trom: 


TIME DESIGNS 


29772 Hult Road, Colton, Oregon, 97017, USA. Telephone (503) 
624-2658. ‘ 
VISA and MASTERCARD accepted. 
For a sample QL and Spectrum magazine, send $3 


Insure that your Master Mandelbrot cartridge 
contains a copy of the newly created code 
(YINC_code). Insert (or merge) the following listing 
into the BASIC listing of the Mandelbrot program: 


1985 CALL yine 
2555 yinc=RESPR(68): LBYTES mdvi_yinc_code,yine: CALL 
yine 

2985 CALL yince 

3783 CALL yinc 

4685 CALL yinc 

4665 CALL yine 


36 


SUGEE REGAL GSES 92209 92002 99 02 980 OGD 0999 B99 99D 9S TTBS BERN UCR I RD OR TII TIRES GS BD GR IGIRRIORGR: 


Time Uesigns testis 


GRAN, Archivist MP, Text8?, & Mailbag 


by Mike de 


QJump's QRAM v. 1.16 * x * * 1/2 


Earlier versions of Tony Tebby’s QRAM, 
tested as part of the Sandy SuperQBoard 
system, troubled me, but now I realize that 
this was minly due to flaws in the system 
and not in the QRAM software, itself. Then 
there were the spurious rumors that Tony had 
designed QRAM to be incompatible with the 
software of some of his competitors (Super— 
charge and Qliberator, to name two). What- 
ever the whole truth, much is now improved. 
QRAM now seems to work well with SPEED- 
SCREEN, Trump Card and other disk interfaces 


and RAM packs, but not with FLASHBACK or 
TurboQuill+--two top-notch programs. 

QRAM comprises RAM-based utilities for 
the QL: a full multitasking front end, pop- 


up menus (within your Psion programs), fast 


and versatile RAMdisk software, dual- 
keystroke hotkeys, screen and window dumps, 
spoolers, a good compatibility with Tebby's 


QDOS and SUPERTOOLKIT II and other software, 
and many other utilities. 

QRAM, already very efficient as it comes, 
offers many opportunities for customization. 
In ite "stock" configuration, it "comes up” 
in the standard QL dual-screen format. 
Keying Alt / from the SuperBASIC format or 


within Psion or other programs presents the 
initial pop-up menu with six main options 
(FILES, JOBS, CHANNELS, PRINT, WINDOW DUMP, 
OPTIONS, and severai redundant controls for 
QUIT, HELP, and moving the menu window. Two 
methods of selecting options are always 
available: by means of a pointer control- 


lable with the cursor or QIMI (QL Internal 
Nouse Interface) and by keying the first 
letter of an option. The SPACE bar is 
usually used to select an action or file, 
and ENTER to execute a selected command. 
QRAM is most economical in the use of 


keystrokes required to get into, out of, and 


between programs, especially if one custom 
izes the BOOT and HOTKEY files. As many 
runs of one or more programs can de 


multitasked and switched between 
permits and this capability 
Grabber, a 


as memory 
is enhanced by 
utility which modifies programs 
such as Psion’s QL QUILL so that they don't 
gobble up all available memory. A fraction 
of a star is deducted for its sometimes dif- 
ficult or skimpy documentation and because 
it is not, at least in this version, compat- 
ible with some important new programs. if 
TASKMASTER is the Mercedes Benz of full- 
featured multitaskers, QRAM is the BMV, 
handier and superior in some ways. 


37 


HOT TIPS: Grabber-modified Psion programs 
and RAMdisk software (RAMprt) is usable 
separately without QRAM. 

About $55, but make sure it's version 1.16! 


A.R.K.'s ARCHIVIST MP * * * * 1/2 


Applied Research Kernel Distribution’s 
ARCHIVIST MP database manager is not an up- 
grade of ARCHIVIST 128, but a quantum leap 
forward. MP is for Multi-file Programmable: 
it can open and use up to 20 files at a time 
and may be programmed at several levels and 
in many ways to meet special requirements-- 
it can access up to 200,000 records (over 
100,000 with Trump Card. «It is also com 
patible with ARCHIVIST 128 files and screen 
formats and can use QL ARCHIVE database, 
screen, and export files.) 

Making use of Run-time ARCHIVE, it runs 
alone but is programmable using QL ARCHIVE 
v. 2.36 (ARCHDEV). A control file option is 


available by which one can set up a 
multi-file system and automatically copy 
selected database and screen files to 


RAMdisk at turn on, enabling rapid access to 
data. Entering the name of a single control 
file can initiate use of a comprehensive 
system of database files and multiple ecreen 
formats. Global searches of various types 
can be undertaken among open files. 

To simplify matters, ARCHIVIST MP makes 
use of a standard 22 renamable fields of up 
to 69 characters, one field per line. This 
arrangement is extremely practical--most 
database designers fail to "keep it simple, 
stupid,” and create their own; pitfalls. 

ARCHIVIST MP is in many ways comparable 
to high-capacity database ‘handlers like 
dBase 3: rational menu structures offer 
single keystroke access to various functions 
and “external” utility programs can be 
executed froma "Tools Menu’--the example 
program supplied has many useful utilities 
including one to sum values in a given field 
throughout a file and those to globally 
delete, insert, or replace strings of text 
in any field of every record. Documentation 
is excellent and a tutorial on database use. 

A fraction of a star was deducted because 
all ARCHIVIST MP fields are string fields, 
making it more difficult to compute and 
insert the value of interactive mathematical 
values than it is using QL ARCHIVE, and 
because data is not directly transferable to 
external programs as it is using FLASHBACK. 


Requiring a minimum of 256K total RAM, 
ARCHIVIST MP is supplied on Microdrive cart— 
ridges and 3.5" or 5.25" disks. Available 
for about $76 (#56 if you return the origi- 
nol ARCHIVIST 126 cartridge), using UK 
checks, Eurocheque, International GIRO, or 
VISA card, directly from ARK Distribution, 
Corve Farmhouse, Chale Green, Ventnor, P038 
2LA, U.K, (Telephone 0983 79 496). ARK will 
also supply QL ARCHIVE v. 2.38, for about 
$36, and other software. 


Software87's Text®?7 v. 1.06 * * & x 1/2 
Digital Precision's excellent text editor 
THE EDITOR was subtitled "Chuck Quill Out!" 
by its designers, but even the advanced 
Special Edition of THE EDITOR failed to oust 
QL QUILL from its WYSIVYG ("What you see is 
what you get") supremacy, especially after 
such great QUILL-enhancers as SPEEDSCREEN, 
TurboQuill+, and FLASHBACK greatly increased 


the performance of QL QUILL without 
decreasing its user-friendliness. 

Text®7 promises, repeat, promises to do 
just that, but it has a little way to go 


before it will cupplant the 
easiest of them all, 

Text®°7 is billed as a full-featured 
WYSIWYG word processor designed for easy use 
by amateurs, The printer driver permits con- 


cheapest and 


figuration for "any type of printer,” but, 
if yours is not one of the several pre- 
programmed types, it is not directly 


configurable without an assembler. 

Text®7 is menu-extensive and typeface- 
and typesize intensive: it will print any- 
thing that your printer can--assuming compat- 
ibility--and offers comprehensive functions, 
including easy block transfer to other 
files, QL QUILL's main drawback. It also 
loads QL QUILL doc files, 

Text©7 is very compact (64K) and requires 
a minimum of 64K RAM expansion (a total of 
192K RAM)--more is better. With 256K RAM, 
Text®7 is said to load a 3400-word QUILL 
udoc file in 12 seconds and a 33000-word 
file in 52 seconds. Printers directly 
supported in this version include the Epson 
FX80, LX600, and DX100; the Silver-Reed 
EXP500; the Brother HR10 and HRS; and the 
Diablo 630. The FX80 printer driver seems 
to work well on my old Star Delta 10 
printer, An ASCII printer driver is also 
supplied for use with obsolete or 
nonstandard printers. 

Text®7 ic compatible 
MASTER, SPEEDSCREER, 


with QRAM, TASK— 
FLASHBACK, and SPELL- 
BOUND. Founted®7, by the same firn, isa 
compatible and easy to use font (or fount) 
editor; Fountext66 is a graphic printer 
driver for Text®7 that provides more than 20 
printer typefaces in different sizes for 
Epson-compatible dot-matrix printers. 2488 
isa set of dedicated printer drivers for 
Epson and NEC 24-pin printers that supports 
different print styles and sizes and propor- 
tionally spaced typefaces. 

Text®7 lies in complexity somewhere 
between QL QUILL and The Editor, perhaps 
closer to the latter. But, if you are ready 
and able to undertake learning some new word 
processor concepts, and have a compatible 
printer, and can afford it, Text®” should do 


38 


about anything very quickly. 
sent a hybrid, 


It may repre- 
rather futuristic combination 


between a word processor and a desktop 
publisher. 
The documentation I have is in the form 


of a not always clear or complete 60-page 
manual; for example, not all commands and 
options found in the submenus are covered. 
But a revised manual, including a new 
tutorial is probably available now. 

I had intended todo a full article on 
the capabilities and operation of Text®? for 
this issue, but late notification of a short 


deadline made this impossible. Next time 
for sure. 

Text©°” is now available directly from 
Software 87, 33 Savernake Road, London NW3 
2JU, U.K, Airmailed prices for Text®7 and 
Founted®” are $75 and $15, respectively. 
Fountex®* and 2488 are $45 and $15, 
respectively, Payment must be made by 


traveler’s check, International GIRO postal 
money order, or other check directly payable 
at a U.K. bank; add about $8.50 for checks 
not so payable! 


EMSOFT’S MAILBAG * * * * 1/4 


MAILBAG is American software consisting 
of database handling programs and screens 
for use with QL ARCHIVE, a minimum of 256K 
RAM is required. It provides a versatile 
database for purposes ranging from a simple 
address to small-business use. Its designer 
Peter Hale of Boston is high on it, saying 
that it is "the most exciting program for 
ARCHIVE that has yet been released,” dis~ 
tinguished from other database applications 
for the QL by its great flexibility in 
handling names and addresses, its lack of 
protection from illegal pirating, and in 
offering menu-driven QL ARCHIVE programs. It 
also offers mailmerge facilities using 
specially prepared QL QUILL documents. 

Documentation consists of a 4-page flyer 
and a 12-page doc file, but I understand 
that you may never have to use the latter. 
I dia! 

Peter claims that 
four respects: 


MAILBAG is unique in 


a. It prints labels to a U.S. Postal 
Service standard 

b. It is unprotected 
user edited for screen 
and listings 

c. It prints with versatility 
having to change printer _dat files. 

ad. The user may design custom formts 
for record display on printouts or as 
mailmerge documents. 

I didn't have a lot 
"wring it out" and 1 


and may be fully 
displays, programs, 


without 


of time to really 
am not a database 


person, but from what I have seen it is a 
winner. I shaved part of a star because it 
should be on runtime ARCHIVE and stand 
alone--maybe in its next version. 

Excellent work Peter! 

MAILBAG is available directly from 
EMSOFT, Box 8763, Boston, Mass. 02114-8763 


for $19.95 on 5 1/4" 60-track floppy disk or 
$21.95 on Microdrive cartridge. No credit 
cards. Dealer prices are available. 


WEXT TIME: A complete and thorough treatise 
on Text®°7 and more hot software. 


[ 


“& COLUMN 


by Tim Woods 


There is a lot to report on this issue. as 288 
activity keeps moving along. But first, an ex- 
planation is in order. for those joining us for the 
first time. The “Z-COLUMN" is a regular feature that 
discusses the newest member of the Sinclair computer 
family...the 288 Laptop. While maintaining some of 
the characteristics of earlier Sinclair machines (280 
CPU, very light-weight/compact design, use of func— 
tion keys or combination of keys to execute major 
commands, etc.), the 286 achieves a whole new 
standard of performance and power. If you haven't 
seen one or tried one out yet, there just might be a 
computer dealer in your area. 


As of this writing, there are three 
organizations involved in marketing the Z88 in the 
U.S.A. First, there is SSI Computer systems in 


Portland, Maine, who distributes the Z88 inventory 
from their New England warehouse. SSI is being 
advised by The Marketing Clinic, which is run by long 
time Sinclair associate. Nigel Searle, who ie also 
the former head of Sinclair Research, U.S. division. 
And finally, there is another organization near 
Chicago. Illinois, called Cambridge Direct Ltd., 
operated by President, Kevin Jeffers. Cambridge 
Direct is the exclusive direct marketing arm for the 
288. To date, I feel that an adequate job is being 
conducted to pomote and market the Z88. There are 
several hundred dealers around the U.S. that are 
stocking them. A large ad recently appeared in the 
WASHINGTON POST newspaper, and very favorable reviews 
of the machine are in the most current issues of BYTE 
and COMPUTER SHOPPER. 

The first issue of Z68 USER. “the official zea 
computer magazine” hit the streets in April. The 34 
page publication is being produced by the publishers 
of QL WORLD Magazine. It looks like it will be a good 
magazine as soon as they get rolling along ona 
regular schedule. A question and answer column 
covered two items that are undocumented in the Z88 
User Guide 

Another publication, which I am personally 
involved in is called CLUB 288. It is a non-profit 
bi-monthly newsletter. One unique feature, is that 
subscribers can earn points, free gifts. and a chance 
to sit on the exclusive "board of directors" by con- 
tributing articles, tips, and programs to the 
newsletter. You can obtain a sample issue, by sending 
a SASE to: CLUB 288, c/o Time Designs, 29722 Hult 
Rd., Colton, OR 97017. 

New products are just now coming on the market: 
a spelling checker, the official Cambridge 300/1200 
“matchbook" modem, A "C" Compiler, the Advanced User 
Guide, a cassette tape interface to provide security 
back up for the RAM cards, and the elusive one meg 
RAM cards are still being promised before the year'e 
end 

As a tip for PIPEDREAM (the on-board word 
processor): I have found that following the guidlines 
specified for moving the cursor position around, 
using TAB, arrow keys, diamond key. etc., that 
getting into the habit of using these will develop 
faster manipulation of your text. I know this sounds 
like common sense, but more often than not, we use 
eld typing habits in word processors that can really 
slow things down. 


39 


IS HERE 


And we have it! 


Sir Clive’s LATEST is now in stock 
at RMG!1] This SUPER little laptop 
computer with features like: 
128K RAM, 32K ROM, BUILT~ 
IN S/W PACKAGES AND SMALL 
SIZE AND WEIGHT (2 LBS! >} 
make it a GREAT addition to our 
line. As our way of introducing 
you to the 288, we are offering, 
for a limited time only, with any 
288 purchased before 9/30/88, 


A FREE CENT. PAR. I/F 
A 32K RAM CARTRIDGE 


THE PRICE? TOO LOW TO LIST 
PLEASE CALL OR URITE! 


RMG ENTERPRISES 
1419 1/2 7TH STREET 
OREGON CITY, OREGON 97045 
503/655-7484 * NOON-10 TUE-SAT 


FOR SALE: EYE-Q. retail $50. sell 
for $35, or best offer. MATCHPOINT, 


retail $28. sell for $18, or best é., <a 
offer. Shipping included. WANTED: 
TECHNI_QL. Chia-Chi Chao, 73 
Sullivan Dr., Moraga, CA 94596. 
FORTH 79,83 USERS, I would like you 


WANTED: Z-TALKER FOR TS1000, Please FREE ADS FOR SUBSCRIBERS to drop me a line to swap in- 


contact Merlin J. Raymond, 16822 formation and help. George David 
Farmington Rd., Beaverton, OR Johnson, Beaufort Naval Hospital, 
97007. PO Box 6204~A, Beaufort, SC 29902. 


WANTED: Booklet on 2050 Modem and 


é any relevant software. Also full— ra ee i 
WANTED: 1/0 PORTS FOR TS1000. sized keyboard. N. Oshane, 197 BOOK WANTED: "S.U.M.-Small User's 
BYTE-BACK preferred, but others Morningside Dr. E Bristol, CT Math- Powerful Algorithms". Willing 
considered. Contact Merlin Raymond, eee g to pay any reasonable price. Jaime 


16822 SW Farmington Rd., Beaverton, 96010. A Cruz-Figueroa, Rt 2 Box 245-M, 
OR 97007, (503) 591-7392. Lillington, NC 27546. 

WANTED: ZEBRA GRAPHICS TABLET, 

w/manual, working or defective (if , 
volt tbo vont Opie of SYNTAX repairapie). New or used wafers for WiLL TRADE: PRO/FILE 2068, for zx 
ree ee VOl.52 1 7 ipius., three A&J Microdrives. Send description & : 


Quarterlies. $40.00 or free to non- 
profit. Peter Hale, Box 8763, 
Boston, MA 02114. 


price to: W.E. Powden sr., R#1 Box "2°68 for MDO2B. or sell out-right 


364. Bridgeport. IL 62417, (make offer). D.G. Smith, R.415 


Stone St., Johnstown, PA 15906. 


Do you have some equipment or a program that you would like to sell? Looking for something hard to find? Place an 
ad in THE CLASSIFIEDS! Subscribers can place one free personal ad in each issue. Ad size is 32 Col. wide (like 2040 
paper) and maximum of six lines. For additional lines - $3 each. NON-SUBSCRIBERS and DEALERS: $4 a line. 
DEADLINE FOR ALL CLASSIFIED ADS: Two weeks before publication date. Mail your ad to: 

TIME DESIGNS MAGAZINE, The Classifieds Dept., 29722 Hult Rd., Colton, Oregon 97017. 


DON’T _ 
PECTERM—-44 (T5—-4.1 
MISS OUT! eet Bad Tatil Pte as 7068 ) 
a On 0, AERCO, Larken disk or tape 


and 
2-SI/0 Bare Boards 


RS-252 Serial Interface For The 2068 
With EREE 2050 card 


Subscribe Today $50.00 con ea SBH 


only $16.95 ( Qureme 48 cowrreuous stares, $6.50 StH ) 


year 


This is a TDM special offer. To order 


TIME DESIGNS MAGAZINE CO. or for additional info contact: 
29722 Hult Rd., Colton, OR 97017 . 
Ed Grey Enterprises 


P.O. Box #2186, Inglewood CA 90305 
(213) 759-7406 


The Grey Hatter BBS & ROP/H 
(213) 971-6260 


APPLICATIONS SOFTWARE for the QL 


MAILBAG An address database you 
won't believe. Labels, 
Rotary index cards, Zip 
sorting, tickler filing 
3 column printout, many 
automatic features, not 
protected 256K+ 


TAI-I-QL Spreadsheet for IRS tax 
returns S84K+ 


QLAHDLORD Nanages up to 99 units 


or buildings and does 
Schedule E (Soon) 256K+ 


$19.95 ea ppd on 5 1/74" DSQD 
(+$2.00 on microcartridge) 


Agents for ZX/TS Siriusware 
4K Wordprocessor with 
TS 2040 lower case printer driver 


Orders, Catalogues & Dealer infa: 
EBMSOFT 


P.O. Box 8763, Boston, MA 02114 
(617) 889-0830 


THE Z88 UNDER 2 LBS. 


A Computer Without Compromise 


‘Solid-state permanentstorage * Acomputer lth advanced word-procersing, sprea: 
and ingenious time- and data-management software built-in « computer whci 
completely self-contained, which gives you up to 20 hours active computing trom just 4 AA 
batteries, yat which tales and litene toyour lM * A computer witha hll-size keyboard, ina 
‘package less than the size of n 82x11, witha fotal weight ofless than 2 Ibs, » The Z88. A 
computer without compromiee 


WRITE FOR FREE CATALOG 


Sharp’s, Inc. 
Rt. 10, Box 459 
Mechanicsville, VA 23111 
(804) 746-1664 or 730-9697 


LET YOUR THAGINATION SOfR! 


Be sure to stop by our booth at 
THE 3RD ANNUAL INTERNATION 2.7 
GREAT NW TS MINI-FAIR! 


Valuable Coupon! 
$5 OFF 
Any order for $50 or more 
when you include a copy of 
this coupon. Use at the Fair 
or anytime until 11/1/88. 


The LKDOS disk I/F 
and EXTENDED BASIC 
CARTRIDGE and the NEW 

LARKEN RAMDISK will be on display at 
RMG’s booth and you are invited to stop 
by to see these GREAT PRODUCTS demoed! 


MINI-FAIR SUPER BUY! 
Order any COMPLETE LKDOS SYSTEM and get 
the LARKEN DISK EDITOR and 2 other disk 
packages AT Pesce EEy NO EXTRA CHARGE! 


Order the LKDOS system WITH a RAMDISK 
and we will throw in 1 FREE 32K RAM 
CHIP! (Either way, you get over $20 in 
FREE items!) 


RNG ENTERPRISES VISA _ 


1419 1/2 7TH STREET * OREGON CITY, OR 97045 * 503/655-7484 


™ 
1 
1 
¢ 


eo Foxel Frant PLUS! 

ig 1 THE DESKTOP PUBLISHER 

te -_ by Lenke SoFtvare 

Iexat ; er 

Vga What's the PLUS? 

tau t PERFORMANCE! 

Hee Checkout these SPECS 

We 1) avsrnye 

i i 

letter 

hie | 

orc! 

Hla 5) 

la = Teenie conver 

Ix 1 

© 12) AUTOMATIC and MAHUAL line and 

is j character adjustments. 

“--/ 3) RESTORE FONT (after wu 
BOLD/MODEEN/ ITALIC me 

e-cy 4) KEEFVUNDO/’SAVE/LOAD/LOAD ICON 

ix 7 Loan sc S SCREENS 

1c ' WIDE“HIGH 

a 

ir 15) QUERY INUERSE/CAPS Lock 

Id ft UF TO 16 POINT FONTS 

1 at (font package in develorment) 

Son) 6) COPY/ERASE/INSERT/DELETE“HEW 

ia 1 

fad t 7) AERCOST. 

1 POL 

WMexI gy 

we 1 

i aT 


Tet 


45 i 

168 BE il 
ay GOH RY W2 
wot FON £ tt 
ret FON AR! we 
35! FONT LIBRARY 13 
eee le CNT D 
ao PIX 
weet CH 


function 


iT ETP 


Gre 
[SorTHARe] 


Fivel Prand Frofessicna 
9 RERCO GSK jee 


* Pixel Print Plus wae 
* Ereate up to 28 page 
documents 

* Print a complete oc 
headers lefts @ right 
€no more printer adjustments! > 

# Uses bank=-switching to print 
left and right columns together 

# Print multiple Copies! 

# Newsletter Format or 

*# &Y Eolumn Letter Format 


MOTE? printers must be capable 
of fe to 98 Dots per inch 
S76 to fe8 dots per /ine> 

Bit tmage Graphics!!! 


* Rutomated Printer Customizing 
* SSUD diskette (om AuTO-savE TAPED 
* onty $2935 ped. «ORDER wow!> 


OLIGER DISK VERSION! 


# Same as the AERO 
version shove except 
for use with the 

Oliger Disk interface 


* Reguires a minimum of ack 
FOM expansione.. €see the 
der RAM Cartridge below!>? 

# Program comes on CASSETTE 
and AUTOeSAVES to OSH. some 
editing Gees ¢remo RES? 


# onty $f932 ped, (ORDER NOW! 


Faxel Frant 

Fi atte! 
a 
For EASSETTE | 
& MICROORIVE 
* Same as Rerco 
except for use 
with Tapes 


MOVE: Specify either TRFE | 
or MICROORIVE,.. 


# Requires a minimum af 32k 


PAM expansionss: C€see the 
acer RAN Cartridge below!>? 


* only $f932 ped. CORBER nowt 


2k RAM CAATRIOGE 


* 32h Volatile Memory 
* Fits 


into the TS=-2058 


Partridge Dock * 


onty S982 


Plus SY shipping 
and handling